Я пытаюсь выполнить исполняемый файл и Perl-скрипт из Java-программы.Я нашел много тем, похожих на эту, но большинство из них относятся к окнам.Я знаю, что Java независима от платформы и должна работать в любом случае, но это не так.Решение, которое я уже пробовал, основано на java Runtime и его методе exec.Он отлично работает на Windows, но так как я переношу свою программу на Linux, мне нужно ее адаптировать.Как я уже сказал, мне нужно выполнить исполняемый файл, который я скомпилировал и был написан на c ++, который выглядит так, как будто он работает, но он завершает выполнение со значением выхода 1. Я понятия не имею, что это значит, но в окнах он выходит с 0и так должно быть и на Linux (?!?!).Жемчужный сценарий, с другой стороны, не запускается вообще.Я использую команду "perl script.pl", и она выходит со значением 255. Само собой разумеется, она не делает то, что должна.
Кто-нибудь знает другой способ выполнения этих файлов?Или, может быть, где я не прав с моей реализацией?
вот код, если вы хотите взглянуть на него: Это тот, что для сценария perl
public static void main(String[] args){
System.out.println("Starting");
try{
String[] cmd = {"perl", "cloc-1.53.pl"};
Process pr = Runtime.getRuntime().exec(cmd);
BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line=null;
while((line=input.readLine()) != null) {
System.out.println(line);
}
int exitVal = pr.waitFor();
System.out.println("Exit code: " + exitVal);
} catch (Throwable t){
t.printStackTrace();
}
}
Для скомпилированного файлаЯ изменяю это:
String[] cmd = {"perl", "cloc-1.53.pl"};
с:
String cmd = "./UCC";