我的目标是成功编译并运行Java代码,该Java代码由一个外部库(activemq)和多个外部Java类组成。这是我的文件夹结构的示例:
/ code / 客户端 /链接/到/文件/ 客户端
此文件夹仅包含我要编译和运行的Client.java
。
/ code / helper /链接/到/文件/ helper
该文件夹包含多个.java
导入的client.java
文件。
/jar_folder/activemq-all-5.15.13.jar
我在eclipse中将jar文件添加到我的项目的buildpath中。而且我没有在日食中看到任何警告或错误。当我点击“运行”按钮时,出现以下错误:
java.lang.NoClassDefFoundError: javax/jms/Destination
Eventhoug我只是从activemq.jar
导入以下类:
import javax.jms.Connection;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.MessageProducer;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;
由于过去两天没有找到解决问题的方法,所以我尝试通过控制台编译并运行代码-没有成功。
find -name "*.java" > sources.txt
javac -d bin/ -cp '/jar_folder/activemq-all-5.15.13.jar':. @sources.txt
它实际上编译了每个.java
文件而没有错误,但是当我尝试使用以下命令运行客户端/类时:
java -cp '/jar_folder/activemq-all-5.15.13.jar':. Client
我收到以下错误:java.lang.NoClassDefFoundError: /link/to/file/client/Client (wrong name: Client)
有人可以帮我解决我的问题,因为我真的想测试我的代码。
提前谢谢!
答案 0 :(得分:0)
我相信您应该使用此命令来运行您的应用程序:
java -cp '/jar_folder/activemq-all-5.15.13.jar':./bin client/link/to/file/client/Client