我制作了一个java程序。我使用了eclipse,这是一个maven项目。现在,当我从Windows命令提示符运行程序时,它运行正常。我在这里如何从Windows命令提示符
运行它D:\Personal Work\eclipse 32 Bit\workspace\....\target\classes>
java -cp ".;..\dependency-jars\*" com/softech/ls360/integration/BatchImport vintners
工作正常。我的依赖jar文件夹包含这些jar文件
现在我从linux运行相同的程序。我在这里如何运行它
root@Basit:/home/test/script/classes# java -cp .;../dependency-jars/*; com.s
oftech.ls360.integration.BatchImport vintners
然后我得到错误
....
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see java.lang.instrument
-splash:<imagepath>
show splash screen with specified image
../dependency-jars/commons-collections-3.2.1.jar: line 1: PK??: command not found
../dependency-jars/commons-collections-3.2.1.jar: line 2:
../dependency-jars/commons-collections-3.2.1.jar: line 2: ?8: command not found
../dependency-jars/commons-collections-3.2.1.jar: line 3: syntax error near unex
pected token `)'
../dependency-jars/commons-collections-3.2.1.jar: line 3: ? ¶META-INF/MANIFE
ST.MF?VKo
_¦?z? ?%+v?N??!ö!P@
(
_?o.5?$
com.softech.ls360.integration.BatchImport: command not found
为什么我会收到这些错误。我怎样才能在linux上运行它?请帮忙
由于
答案 0 :(得分:3)
您需要在linux envrionment的classpath中使用:
而不是;
。假设您正确放置了罐子,那么只需更改它:
java -cp .;../dependency-jars/*; com.s
oftech.ls360.integration.BatchImport vintners
到
java -cp .:../dependency-jars/*: com.s
oftech.ls360.integration.BatchImport vintners
应该有效
在此处详细了解如何设置classpath:http://docs.oracle.com/javase/tutorial/essential/environment/paths.html
答案 1 :(得分:2)
分号使Bash调用没有类路径的java命令,然后尝试直接执行每个jar,寻找一个不存在的shebang。这导致JAR标题作为错误的一部分打印出来。
使用:
在Linux上分隔jar而不是分号。
答案 2 :(得分:0)
您需要进行两项更改:
所以,总之,你会想要使用像
这样的东西java -cp .:../dependency-jars/\*: com.softech.ls360.integration.BatchImport vintners
答案 3 :(得分:0)
你应该使用:而不是;作为类路径文件的编写者。