gpt4 book ai didi

java - jar 在 Windows 上运行但在 Ubuntu 上不运行

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:12:08 25 4
gpt4 key购买 nike

我正在使用 Maven 为我的项目生成一个可运行的 jar 文件,其中包含所有依赖项(复制到一个单独的文件夹中)。

http://pastebin.com/NfhiVZhM (链接到 pom.xml 以避免在此处复制巨型 xml)

我在装有 jdk 1.8 的 Windows 10 机器上运行 mvn package。在 mvn run 之后,如果我打开 cmd 并运行 java -jar instagramBot.jar 一切正常。

Maven 生成结果(目标)的文件夹由 Dropbox 与带有 oracle-jdk-1.8 的 Ubuntu 机器同步。

但是如果在 Ubuntu 上打开一个 shell 并运行相同的命令,结果是:

rafa@Bangkok:~/svn/instagramBot/target$ java -jar instagramBot.jar Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: com/tomatechines/instagramapi/services/exception/InstagramException

在此之后打印 JVM 堆栈跟踪并且程序崩溃。

我已经三重检查了包含 com/tomatechines/instagramapi/services/exception/InstagramException 的 jar 是否存在于类路径中,也存在于 Ubuntu 机器的库文件夹中。但是错误一直在发生。

我还检查了 jar 名称中可能出现的任何特殊字符,但我什么也没找到。

堆栈跟踪对错误没有任何进一步的解释:

Error: A JNI error has occurred, please check your installation and try again

有没有人知道可能是什么或者我还应该检查什么来确定问题?

==============更新============

我使用的所有库都是 jar。没有 DLL 或特定于操作系统的文件。

我尝试通过 Eclipse 导出一个可运行的 jar 文件并将所有库打包到一个 jar (58MB) 中,它在 Ubuntu 上正常工作...我不想使用这种方法,因为我的代码将要更改很多而且我使用的库没有,但是如果我将所有东西都打包在一个 jar 中,每次我修复一个小错误,我都需要重新同步 58MB,尽管事实上 Eclipse 导出 jar 的过程非常不方便。

最佳答案

答案在这里

[WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent

您可能希望在您的 pom 中将源编码声明为 utf8,请参阅 this link

<properties>
...
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
...
</properties>

关于java - jar 在 Windows 上运行但在 Ubuntu 上不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42859051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com