在classpath中添加jar来执行unix中的主java类

时间:2015-09-02 10:50:52

标签: java unix

我有一个jar在下面的位置jar的名字是bce_boa.jar,它包含一个主要方法的类 该类的名称是DummyRmiSecurity.java

/opt/app/pracier/servers/clsintegration/racier_14_1_/ops/lib/bce_boa.jar

现在当我在上面这个位置时,我在unix中执行了下面的命令来执行bce_boa.jar中的DummyRmiSecurity

java -cp  /opt/app/pracier/servers/clsintegration/racier_14_1_/ops/lib/bce_boa.jar  com.jms.rmisecurity.DummyRmiSecurity

但我得到以下错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext

现在经过分析我知道当春季罐子没有包含在类路径中时我得到这个错误所以我所有的春天相关的罐子都是下面的位置本身

/opt/app/pracier/servers/clsintegration/racier_14_1_/ops/lib

现在请告知我如何在我的类路径中包含上述位置的所有罐子

2 个答案:

答案 0 :(得分:0)

您可以在类路径中使用*来包含给定目录中的所有.jar个文件,但是您需要注意保护*不受shell的扩展。

java -cp  '/opt/app/pracier/servers/clsintegration/racier_14_1_/ops/lib/*'  com.jms.rmisecurity.DummyRmiSecurity

如果没有引号,shell会扩展通配符并尝试将以空格分隔的文件名列表传递给java,这将无效。 java命令需要查看文字*本身。

答案 1 :(得分:0)

如果/ opt / app / pracier / servers / clsintegration / racier_14_1_ / ops / lib包含所有必需的库,则需要将其添加到类路径中。命令应如下所示

java -cp  "/opt/app/pracier/servers/clsintegration/racier_14_1_/ops/lib/bce_boa.jar:/opt/app/pracier/servers/clsintegration/racier_14_1_/ops/lib/*"  com.jms.rmisecurity.DummyRmiSecurity
编辑:我没有注意到bce_boa和其他lib一样在文件夹中,Ian Roberts回答的情况更好。