Java 应用程序 jars 在 Unix 环境中抛出错误

标签 java unix

我们已经使用maven来打包我们的Java应用程序。 我们有一个包含应用程序代码和配置的 app.jar 文件,以及一个包含所有依赖项 jar 的 lib 文件夹。 在 Windows 上,一切运行良好。

我已将文件复制到unix,并将所有文件权限添加到每个jar。 运行时,应用程序会从 lib 文件夹中的 jar 之一引发此错误:

./lib/activemq-broker-5.9.0.jar: line 1: PK: command not found
./lib/activemq-broker-5.9.0.jar: line 2: NC: command not found
./lib/activemq-broker-5.9.0.jar: line 3: syntax error near unexpected token `)'
./lib/activemq-broker-5.9.0.jar: line 3: ½NCYzò   Ó¯META-INF/MANIF

在unix上,这是命令行的格式:

java -cp app.jar;./lib/*; com.company.app.Start --param=value1 --param2=value1

我想知道是否有人发现任何明显的问题。

谢谢

最佳答案

您必须使用 : 作为 unix 环境中类路径的分隔符:

java -cp app.jar:./lib/* com.company.app.Start --param=value1 --param2=value1

因为;是命令分隔符。

关于Java 应用程序 jars 在 Unix 环境中抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28194531/

相关文章:

java - 如何安全地终止已超时的查询

java - Graphics2D 在定义的四边形内部绘制图像

java - 如何反转整数的数字?

java - JSoup 从 unix 中的 HTML 选择

java.lang.IllegalAccessException : Tried to access visual service WindowManager from a non-visual Context

linux - 在 OS X 上运行 Linux shell

regex - 如何在 grep 的输出前加上标签?

unix - 当三列相同时删除行

linux - 如何让程序可以由具有所有者权限的特定用户在linux上运行

java - Thymeleaf - 将变量传递给 Controller