linux/ubuntu/gnome에서 Java 런타임 exec을 사용하여 perl 명령을 실행하려고합니다. 이 명령은 pdf 파일을 생성하지만이를 홈 폴더에 저장합니다. exec 메소드가 실행 된 명령의 출력 경로를 설정할 수있는 방법이 있습니까? 미리 감사드립니다.런타임 exec 출력 경로
답변
출력의 절대 경로를 허용하도록 Perl 스크립트를 수정할 수 있습니다.
exec(java.lang.String[], java.lang.String[], java.io.File)
을 사용하여 작업 디렉토리를 설정할 수 있습니다. 여기서 File은 명령이 실행되는 디렉토리입니다.
그렇지 않은 경우 항상 생성 된 파일을 홈 디렉토리에서 최종 위치로 복사 할 수 있습니다.
exec
방법은 운영 체제에서 명령을 실행하기 때문에 실행중인 명령을 "Java"자체의 것보다 더 많이 exec
이상으로 변경하려고합니다.
변경하여 자바 프로그램의 작업 디렉토리 :
몇 가지 가능성이 있습니다.
.pdf
은 프로그램이 실행되는 곳이므로 작업 디렉토리에 저장됩니다.불행히도 프로그램을 시작한 후에이 값을 변경하는 것은 간단하지 않습니다. 그러나 프로그램을 시작하기 전에 변경하는 것은 간단합니다. 프로그램을 시작하기 전에 작업 디렉토리를 변경하십시오.
홈 디렉토리에서 파일을 만든 후 원하는 위치로 파일을 이동하십시오.
대상 위치가 포함되도록 명령을 변경하십시오. 펄 스크립트에는 출력을 특정 위치 (보통
-o
또는--output
)로 저장할 수있는 옵션이있을 수 있습니다.Runtime.exec("perl someprogram");
같은 뭔가 :이 프로그램을 사용하면에서 바꿀 것
Runtime.exec("perl someprogram -o /path/to/some.file")
는이 작업을 수행 할 수있는 옵션이없는 경우, "출력 경로 재 지정"을 사용할 수 있습니다. 당신의 인수로 아래 무엇을 같은
시도 뭔가 :
Runtime.exec("perl someprogram > /path/to/some.file")
불행하게도, 상황의 자세한 내용을 모른 채 좀 더 구체적인 조언을 제공 할 수 없습니다.
각 방법마다 장점과 단점이 있지만 가장 잘 이해하는 방법을 구현하는 것이 가장 좋습니다. 만약 당신이 일할 수 없으면, 다른 것을 시도하십시오.
무료 온라인 학습 자료는 Introduction to Linux: A Hands On Guide입니다.
섹션 2.2는 1.
에 사용할 수있는 cd
에 대한 세부 정보가 있습니다.
섹션 3.3, 3 절에서는 mv
명령에 대해 설명합니다. 이는 2.
에서 유용합니다.
섹션 5.1은 I/O 리디렉션에 대한 것입니다. "출력 리디렉션"및 >
연산자에 대해 알고 있으면 4.
에 중요합니다.
3.
의 경우 사용중인 펄 프로그램의 설명서를 참조해야합니다.