繁体   English   中英

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

[英]How to target a specific version of java when making an uberjar using Leiningen

我使用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"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM