当前位置: 代码迷 >> java >> 使用Leiningen制作uberjar时如何定位特定版本的Java
  详细解决方案

使用Leiningen制作uberjar时如何定位特定版本的Java

热度:106   发布时间:2023-07-26 14:35:48.0

我使用Lein uberjar创建了一个独立的jar。 在运行Java 1.8的笔记本电脑上,这工作得很好。 但是,我学院的计算机运行的是Java 1.7.0_60。

在我的project.clj中,我添加了:javac-options ["-target 1.7"]以便编译为Java 1.7,但这返回的错误与该jar为Java 1.8编译时的错误相同。 错误为: Unsupported major.minor version 52

也许在我的project.clj中增加了:javac-options ["-target 1.7"] ,对编译的版本没有影响,我不确定,请帮忙!

Clojure当前可编译为与Java 1.6向后兼容的Java类,因此问题不在于Leiningen javac选项。 我在一个项目中遇到了同样的问题。 问题是您正在使用的库之一被编译为太新的Java版本。 当您构建überjar时,Leiningen只需将类从您的依赖项jar中复制到其中,这样您就可以获得它们具有的任何类文件版本。

为了解决我的问题,我不得不在Github上创建依赖项,并使其构建与Java 1.6兼容的类,然后使Leningen项目依赖于派生而不是主要项目。

看来您使用的:javac-options错误。 尝试使用Lein文档中提到的此选项:javac-options ["-target" "1.6" "-source" "1.6" "-Xlint:-options"]

  相关解决方案