当库中有每个平台的文件时,Java应用程序跨平台的最佳方式是什么?
我通常使用chilkat库()仅在windows中开发。但是这个库有每个平台的每个库文件,今天我必须跨平台完成它 示例当库中有每个平台的文件时,Java应用程序跨平台的最佳方式是什么?,java,platform,chilkat,Java,Platform,Chilkat,我通常使用chilkat库()仅在windows中开发。但是这个库有每个平台的每个库文件,今天我必须跨平台完成它 示例 Windows x64使用win64.dll Windows x84使用win32.dll Linux x64使用linux64.so Linux x32使用linux32.so 最大OSX使用OSX.jnilib 这是我在仅使用windows时包含chilkat库的源代码 static { try { System.loadLibrary("lib
- Windows x64使用win64.dll
- Windows x84使用win32.dll
- Linux x64使用linux64.so
- Linux x32使用linux32.so
- 最大OSX使用OSX.jnilib
static {
try {
System.loadLibrary("lib/win64");
} catch (UnsatisfiedLinkError e) {
try {
System.loadLibrary("lib/win32");
} catch (UnsatisfiedLinkError e2) {
System.err.println("Native code library failed to load.\n" + e2);
System.exit(1);
}
}
}
现在我不知道了。如何在java应用程序中包含每个库文件以实现跨平台
请给我指引最好的路
多谢各位
Edit1:抱歉搞混了。我知道如何在运行时查找os.name。但是这个问题我指的是如何包含每个平台运行的每个库文件。您可以使用JARSpile并为许多平台创建多个JAR 您可以使用
os.name
System
属性来确定正在运行的操作系统
String os = System.getProperty("os.name");
if (os.startsWith("Mac")) {
// Running on Mac
} else if (os.startsWith("Windows")) {
// Running on Windows
}
抱歉,没有要测试的Linux设备;)
在Windows上,您可以尝试测试
PROCESSOR\u ARCHITECTURE
环境变量,当在x64位进程状态下运行时,该变量应返回AMD64
,抱歉混淆。我知道如何在运行时查找os.name。但是这个问题我的意思是如何包含每个平台上运行的每个库文件。包括所有的库文件,根据操作系统加载所需的库文件…你的意思是,我可以在Mac上使用“System.loadLibrary”(“lib/osx.jnilib”);在Linux上使用“System.loadLibrary”(“lib/linux64.so”);,什么时候知道操作系统名在运行?我会,但那是我。您可以设置单独的“发行版”,其中只包含所需的库,但我会使用于加载它们的代码相同