在Debian系統上進行Java交叉編譯通常需要以下幾個步驟:
gcc-arm-linux-gnueabi
工具鏈。sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabi
cross-java
或gradle-cross-compilation
插件。git clone https://github.com/alexarchambault/cross-java.git
cd cross-java
./gradlew build
安裝完成后,你可以使用cross-java
來編譯你的Java程序。
cross-java compile -d output -sourcepath src -classpath lib/some-library.jar src/com/example/Main.java
如果你使用Gradle作為構建工具,可以添加gradle-cross-compilation
插件。在build.gradle
文件中添加以下內容:
plugins {
id 'com.github.johnrengelman.shadow' version '7.0.0'
id 'com.github.node-gradle.node' version '3.0.1'
id 'org.beryx.jlink' version '2.24.1'
}
node {
version = '14.17.0'
npmVersion = '6.14.13'
download = true
}
dependencies {
implementation 'org.beryx:jlink-plugin:2.24.1'
}
task crossCompile(type: JavaExec) {
main = 'com.example.Main'
classpath = sourceSets.main.runtimeClasspath
args = []
doFirst {
jlink {
launcher {
name = 'myapp'
jvmArgs = ['-Djava.library.path=libs']
}
options = [
'--strip-debug',
'--compress', '2',
'--no-header-files',
'--no-man-pages'
]
launcherOptions {
jvmArgs += ['-Djava.library.path=libs']
}
}
}
}
然后運行:
./gradlew crossCompile
cross-java
:cross-java compile -d output -sourcepath src -classpath lib/some-library.jar src/com/example/Main.java
./gradlew crossCompile
scp output/myapp root@target-host:/path/to/run
ssh root@target-host
/path/to/run/myapp
注意事項:
通過以上步驟,你應該能夠在Debian系統上成功交叉編譯Java程序。