【问题标题】:How do I compile Java 8 sources with SBT如何使用 SBT 编译 Java 8 源代码
【发布时间】:2015-01-03 00:55:21
【问题描述】:

我正在尝试使用 SBT 0.13.7 使用 lambdas 编译包含一些 Java 8 源文件的项目。 现在,我设置了

-java-home /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Home

/usr/local/etc/sbtopts

显然 SBT 确实考虑到了这一点,因为如果我提供了错误的路径,它会抱怨没有 java 存在。

但是,当我尝试编译时,我得到以下信息

[error] /Users/edafinov/GitRepos/Java8SBTTest/src/main/java/Main.java:10: error: illegal start of        expression
[error]     new ArrayList<Integer>().stream().filter(i -> i%2 ==0).count();
[error]                                                 ^
[error] 1 error
[error] (compile:compile) javac returned nonzero exit code
[error] Total time: 1 s, completed Dec 26, 2014 12:28:55 PM

这似乎表明 SBT 不使用 javac 1.8,而是使用 1.7,这是我系统的默认版本。

我做错了什么?

提前谢谢你

【问题讨论】:

  • 你设置了scalacOptions吗?你能显示show scalacOptions的输出吗?

标签: sbt java-8 javac


【解决方案1】:

显然,如果您在路径中有一个 JDK,SBT 会尝试使用那个,即使您已经明确设置了 -java-home 选项。我通过从 $PATH 中删除默认 JDK 解决了我的问题

【讨论】:

    猜你喜欢
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-16
    • 2012-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多