Java를 통해 명령 행 옵션을 전달하는 방법을 이해하는 데 어려움을 겪고 있습니다. Java 코드가 바이너리 파일을 호출해야하는데,이 바이너리 파일은 다시 몇 가지 지침을 실행합니다. 내가 통과해야 할 명령은Java의 Linux 명령 행 명령
./program 100 -r 1
지금이 내가 실행하면 방법은, 내 자바 코드에서 옵션 -r 1. 을 통과 할 수있다 :
command=new String [2];
command[0] = ".//program";
command[1] = " "+String.valueOf(nScen);
Process p = Runtime.getRuntime().exec(command);
모든 것이 잘 작동하고, 프로그램이 올바르게 실행됩니다. nScen
은 정수입니다. 그러나, 나는이 실행되지 않습니다
command=new String [3];
command[0] = ".//program";
command[1] = " "+String.valueOf(nScen);
command[2] = " -r 1";
Process p = Runtime.getRuntime().exec(command);
또는
command=new String [2];
command[0] = ".//program";
command[1] = " "+String.valueOf(nScen)+" -r 1";
Process p = Runtime.getRuntime().exec(command);
프로그램을 시도하는 경우. 문자열을 병합하려면 +
대신 .concat
을 사용하는 등의 다른 작업을 시도했습니다. 이 작업을 수행하는 올바른 방법은 무엇입니까?
도움 주셔서 감사합니다.
'Runtime.exec()'을 사용하지 말고 대신'ProcessBuilder'를 사용하십시오! – fge
'String.valueOf (nScen)','-r'과'1'은 아마 배열의 분리 된 요소에 있어야합니다. (그러나 @ fge의 조언을 따르십시오.) – Biffen
일반 /을 이스케이프 할 필요는 없습니다. \\와 같은 백 슬래시 만 이스케이프해야합니다. –