我在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
中设置类文件位的类路径但我不知道该怎么做。
我第一次发帖提问,请原谅,如果它看起来很合适。 任何建议都非常感谢。
感谢您抽出时间阅读主题
答案 0 :(得分:1)
EAR文件用于在JBoss或类似服务器上部署。通常它包含jar文件和/或Web存档(WAR文件)。 Java运行时将不会执行EAR文件,因为它将对Jar文件执行(使用java -jar),因此您无法使用命令行来运行java可执行文件。您应该将它放入应用程序服务器或将类打包在Jar文件中,甚至允许您将jar文件嵌套在另一个文件中。
在jar中运行类的命令如下所示:
java -jar CompanyUS.jar com.download.DealerProfile.testShellDealer