如何在Java 1.8中使用com.apple?

时间:2015-11-20 17:38:51

标签: java macos gradle

使用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中使用与平台相关的东西?

2 个答案:

答案 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