我用外部库创建了一个可运行的jar。在Windows下,我使用bat文件来运行应用程序(java -Djava.library.path=./dist/lib -cp ./dist/Navegador.jar; navegador.Main
),它可以正常运行。
我创建了一个sh文件来在Linux下运行该应用程序,但是在尝试在终端中执行它时出现以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError:
chrriis/dj/nativeswing/NativeSwing
我的Manifest.mf是这样的:
Class-Path: lib/DJNativeSwing-SWT.jar lib/DJNativeSwing-SWTAPI.jar lib
/DJNativeSwing-SWTCore.jar lib/MozillaInterfaces-1.8.1.3.jar lib/DJNa
tiveSwing.jar lib/swt.jar
为什么这个jar在Linux下不起作用?
答案 0 :(得分:1)
您是一个还是两个lib
目录?
-Djava.library.path=./dist/lib
但你也有
lib/DJNativeSwing.jar
这是否意味着您拥有dist/lib
和lib
目录,或者它们是否应该相同?
答案 1 :(得分:0)
您无法在Linux下运行该应用程序,因为您缺少本机库(在Linux下称为.so
,在Windows下称为.dll
。)