У меня есть 2 основные programs.first один называется ext.java
и второй один называется send.java
.content, который будет опубликован находится в файле с именем data
Вызов RabbitMQ издатель из кода Java
- Первая программа Java открывает командной строки и выполняет вторую программу java .
- Вторая java-программа затем публикует содержимое файла для очереди на сервере rabbitmq .
Я использую функцию библиотеки apache commons FileUtils.readFileToString(file,format)
для чтения файла.
Когда я запускаю send.java qname filepath
из командной строки, он толкает содержимое.
Но когда я взываю же от ext.java
программы, передавая заданы параметры командной строки (что в проекте Eclipse), он бросает исключение следующим образом:
java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils
Переменные окружения все установленные properly.Here являются файлы кода.
ext.java
public static void main(String[] args) throws IOException {
File f = new File("C:\\Users\\Pradeep\\Desktop\\pros\\externalJava\\data");
Runtime.getRuntime().exec("cmd.exe /c start java send f0 "+f.getAbsolutePath());
}
send.java
import com.rabbitmq.client.*;
import org.apache.commons.io.*;
import java.io.File;
public class send {
public static void main(String[] argv) throws Exception {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
File f = new File(argv[1]);
String message = FileUtils.readFileToString(f,"UTF-8");
channel.basicPublish("", argv[0], null, message.getBytes("UTF-8"));
channel.close();
connection.close();
}
}