У меня есть jar, который преобразует один XML в другой формат XML, используя XSLT в Java. Ящик копирует вывод в какую-либо папку. Он работает абсолютно нормально, когда я запускаю его в командной строке, но запускаю его через Runtime.getRuntime().exec or ProcessBuilder
, не завершая процесс. Всего 25 файлов конвертируются и замораживаются. Когда я завершаю процесс, я могу видеть все файлы, загружаемые в выходную папку, которые не были загружены в одну и ту же папку.ProcessBuilder или Runtime.getRuntime(). Exec не завершит выполнение jar
Любые предложения?
Мой код
private boolean runLoaderScript() throws IOException, InterruptedException {
String args[] = { "java", "-jar", "C:\\Users\\gursahibsahni\\Desktop\\jar\\epnlm_new-1.0.0-jar-with-dependencies_WSJ_stringdate.jar", "-c", "-f", "-d", "7", "C:\\Users\\gursahibsahni\\Desktop\\ConsynInput\\wsjInput\\input" };
ProcessBuilder builder = new ProcessBuilder(args);
Process qq = (builder).start();
qq.waitFor();
return true;
}
private boolean runValidator() throws IOException, InterruptedException {
Process validatorProcess = Runtime.getRuntime().exec("java -jar C:\\Users\\gursahibsahni\\Desktop\\jar\\wsj_jar_20140423.jar -efv -d 7 C:\\Users\\gursahibsahni\\Desktop\\ConsynInput\\wsjInput\\output");
return (validatorProcess.waitFor()) == 0 ? true : false;
}
Кроме того, когда я пытаюсь импортировать баночку в моем проекте и вызвать основную функцию для преобразования XML, это не преобразование XML правильно. Смысл, константы подходят очень хорошо, но функции, которые вызываются в файлы классов для получения данных, не вызываются во время импорта.
ДА! Запуск кувшина в командной строке - это успех! Он работает безупречно. Но при импорте он не преобразуется должным образом. Почему такое поведение? Его очень странно. Пожалуйста помоги.
Почему вы используете exec на Java, когда вы можете просто импортировать JAR-файл в путь к классам и делать '{CLASS} .main ({ARGS});' (вы можете использовать отражение для динамического импорта классов)? – nulldev
Да, это действительно сработало. Но почему этот метод не работает. ? –
@nulldev Я обновил вопрос. –