Я сейчас нахожусь в Linux, но держу пари, что это должно быть:
D: \ Programming \ JMS \ ActiveMQ \ apache-activemq-5.2.0. jar
Кроме того, если вы запустите его с Eclipse и перейдете в Project -> Build Path и этот jar, то проблем быть не должно.В любом случае вы можете опубликовать переменную CLASSPATH?
РЕДАКТИРОВАТЬ
Я не могу вам помочь, если вы не можете мне помочь.Это связано с любыми другими будущими вопросами или работой в целом, предоставьте подробности - это всегда полезно.Будет очень полезно, если вы предоставите команду EXACT, которую вы выполняете в CMD, и код класса, где это происходит.
java.lang.NoSuchMethodError
обычно это означает, что баночка на месте, класс тоже, НО метод не.Это происходит, когда вы компилируете одну версию jar и во время выполнения предоставляете jar, в котором был удален этот метод, поэтому JRE не может найти его, выдавая ошибку.
Я только что протестировал на своем компьютере
Я не понимаю, почему это не работает для вас, но это для меня.Вот мой класс:
package com.test;
public class Publisher {
public static void main(String[] args) {
try{
ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = factory.createConnection();
ActiveMQSession session = (ActiveMQSession) connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic destination = session.createTopic("FOO.TEST");
TextMessage textMessage = session.createTextMessage("Sample Payload");
TopicPublisher publisher = session.createPublisher(destination);
publisher.publish(textMessage);
session.close();
connection.close();
} catch(Exception e){
e.printStackTrace();
}
}
}
Все хорошо, если я запускаю его из затмения с одной зависимостью в Maven:
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-core</artifactId>
<version>5.2.0</version>
Затем я делаю это с java и javac
javac -classpath /home/eugen/.m2/repository/org/apache/activemq/activemq-core/5.2.0/activemq-core-5.2.0.jar:/home/eugen/.m2/repository/javax/jms/jms/1.1/jms-1.1.jar Publisher.java
Обратите внимание, что я добавил только две банки.
Затем java:
java -classpath /home/eugen/.m2/repository/org/apache/activemq/activemq-core/5.2.0/activemq-core-5.2.0.jar:/home/eugen/.m2/repository/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar:/home/eugen/.m2/repository/org/apache/camel/camel-core/1.5.0/camel-core-1.5.0.jar:/home/eugen/workspace/t/src/main/java/:/home/eugen/.m2/repository/javax/jms/jms/1.1/jms-1.1.jar:/home/eugen/.m2/repository/org/apache/geronimo/specs/geronimo-j2ee-management_1.0_spec/1.0/geronimo-j2ee-management_1.0_spec-1.0.jar com.test.Publisher
Я добавилнесколько необходимых банок к пути к классам и запустить его - он отлично работает.
Ура, Евгений.