使用Gradle
编译Java Mac应用程序时出现以下错误:
error: package com.apple.eawt does not exist
但com.apple.eawt
/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/jre/lib/rt.jar
如果我将rt.jar
复制到其他位置并将其添加到类路径,例如由
compile fileTree(dir: '/Users/XXX', include: 'rt.jar')
然后它神奇地起作用!是否有一些技巧可以说服Java在rt.jar
中使用与平台相关的东西?
答案 0 :(得分:4)
我找到了解决方案:
compileJava {
options.compilerArgs << "-XDignore.symbol.file=true"
options.fork = true
options.forkOptions.executable = 'javac'
}
答案 1 :(得分:2)
我知道这有点旧,但我认为这可能对某人有用。使用gradle 3.5时,不推荐使用forkOptions.executable。必须使用javaHome属性:
compileJava {
options.fork = true
options.forkOptions.javaHome = new File("${System.properties.'java.home'}")
options.compilerArgs << "-XDignore.symbol.file=true"
}
请参阅ForkOptions类https://docs.gradle.org/3.5.1/javadoc/org/gradle/api/tasks/compile/ForkOptions.html
的JavaDoc