因爲我的Java源代碼和目標必須兼容JRE 1.6,所以我需要將options.bootClasspath
設置爲包含1.6版本rt.jar
和jce.jar
的路徑。它必須建立在Windows和Unix(Linux/Solaris)上。什麼是正確的方法來做到這一點?我現在用下面的辦法在我的頂級build.gradle
,它的工作原理,但似乎遠沒有優雅,尤其是依賴於操作系統的分離:
或;
:如何以獨立於操作系統的方式設置Gradle`options.bootClasspath`?
import org.apache.tools.ant.taskdefs.condition.Os
subprojects {
apply plugin: 'java'
compileJava {
sourceCompatibility = 1.6
targetCompatibility = 1.6
def java6_home = System.getenv("JAVA_HOME_6")
def java6_lib = "C:/localdata/Program Files (x86)/Java/jdk1.6.0_45/jre/lib/"
if (java6_home != null) {
java6_lib = java6_home + "/jre/lib/"
}
def sep = ':'
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
sep = ';'
}
options.bootClasspath = java6_lib + "rt.jar" + sep + java6_lib + "jce.jar"
}
}
在[File]中有[separator]和'pathSeparator',在[this question]中引用(http://stackoverflow.com/questions/3548775/platform-independent-paths-in-java)。這應該會緩解你的一些優雅問題。 – Patru
Thanx,使用'File.pathSeparator'保存5行代碼:-) –