从shell脚本调用耳中存在的Java类

时间:2015-03-03 16:57:12

标签: java shell

我在CompanyUS.ear中有一个class dealerProfile.class,它部署在服务器中。我编写了一个简单的shell脚本来调用class&dealer; brokerProfile.class' ' com.download.DealerProfile'是该类所在的包

code dealerProfile.sh: java com.download.DealerProfile.testShellDealer

我收到此错误

Exception in thread "main" java.lang.NoClassDefFoundError: com.download.DealerProfile.testShellDealer
Caused by: java.lang.ClassNotFoundException: com.download.DealerProfile.testShellDealer
        at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:677)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:643)
Could not find the main class: com.download.DealerProfile.testShellDealer.  Program will exit.

我知道我需要在.ear

中设置类文件位的类路径

但我不知道该怎么做。

我第一次发帖提问,请原谅,如果它看起来很合适。 任何建议都非常感谢。

感谢您抽出时间阅读主题

1 个答案:

答案 0 :(得分:1)

EAR文件用于在JBoss或类似服务器上部署。通常它包含jar文件和/或Web存档(WAR文件)。 Java运行时将不会执行EAR文件,因为它将对Jar文件执行(使用java -jar),因此您无法使用命令行来运行java可执行文件。您应该将它放入应用程序服务器或将类打包在Jar文件中,甚至允许您将jar文件嵌套在另一个文件中。

在jar中运行类的命令如下所示:

java -jar CompanyUS.jar com.download.DealerProfile.testShellDealer