Java Jar可以在Windows中运行,但不能在Linux中运行
我用外部库制作了一个可运行的jar。在Windows下,我使用一个bat文件来运行应用程序(Java Jar可以在Windows中运行,但不能在Linux中运行,java,linux,windows,jar,Java,Linux,Windows,Jar,我用外部库制作了一个可运行的jar。在Windows下,我使用一个bat文件来运行应用程序(java-Djava.library.path=./dist/lib-cp./dist/Navegador.jar;Navegador.Main),它工作正常 我创建了一个sh文件以在Linux下运行该应用程序,但在尝试在终端中执行时,我遇到了以下错误: 线程“AWT-EventQueue-0”java.lang.NoClassDefFoundError中出现异常: chrris/dj/nativeswi
java-Djava.library.path=./dist/lib-cp./dist/Navegador.jar;Navegador.Main
),它工作正常
我创建了一个sh文件以在Linux下运行该应用程序,但在尝试在终端中执行时,我遇到了以下错误:
线程“AWT-EventQueue-0”java.lang.NoClassDefFoundError中出现异常:
chrris/dj/nativeswing/nativeswing
我的Manifest.mf如下所示:
类路径: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下工作?您有一个或两个
lib
目录吗?你有
-Djava.library.path=./dist/lib
但你也有
lib/DJNativeSwing.jar
这是否意味着您有一个
dist/lib
和lib
目录,或者它们应该是相同的?您不能在Linux下运行应用程序,因为您缺少一个本机库(在Linux下称为。所以在Linux下称为,在Windows下称为.dll
)如何在Linux上运行它?Cat你的.sh文件在这里。sh文件就像蝙蝠一样:#!bin/bashjava-Djava.library.path=./dist/lib-cp./dist/Navegador.jar;navegador.Main
删除
after/dist/Navegador.jar
删除分号后,我得到了相同的错误。也许我需要一个特殊的sintaxis来在Linux中运行jar?我有一个lib目录。主文件夹包含dist
和sh
。在dist
内部,我有lib
文件夹和Runnable jar
。在lib
文件夹中,我有我所有的jar依赖项。在这种情况下,使用dist/lib
或lib
中的一个是正确的。我为此更改了sh文件!bin/bash java-jar./dist/Navegador.jar Navegador.Main
和terminal从相同的目录类型返回相同的错误ls-l lib/DJNativeSwing.jar
。在网上搜索时,我发现了一个有类似问题的人发的帖子。解决方案是添加在Linux中运行应用程序所需的依赖项(JNA)。虽然错误消息说找不到chrriis/dj/nativeswing/nativeswing
,但缺少的真正依赖项是JNA。我使用的是Linux的nativeswing jar依赖项(不是我用于Windows应用程序的文件),因此您的回答绝对错误。