2011-03-06 2 views
1

linux/ubuntu/gnome에서 Java 런타임 exec을 사용하여 perl 명령을 실행하려고합니다. 이 명령은 pdf 파일을 생성하지만이를 홈 폴더에 저장합니다. exec 메소드가 실행 된 명령의 출력 경로를 설정할 수있는 방법이 있습니까? 미리 감사드립니다.런타임 exec 출력 경로

답변

1

출력의 절대 경로를 허용하도록 Perl 스크립트를 수정할 수 있습니다.

exec(java.lang.String[], java.lang.String[], java.io.File)을 사용하여 작업 디렉토리를 설정할 수 있습니다. 여기서 File은 명령이 실행되는 디렉토리입니다.

그렇지 않은 경우 항상 생성 된 파일을 홈 디렉토리에서 최종 위치로 복사 할 수 있습니다.

2

exec 방법은 운영 체제에서 명령을 실행하기 때문에 실행중인 명령을 "Java"자체의 것보다 더 많이 exec 이상으로 변경하려고합니다.

  1. 변경하여 자바 프로그램의 작업 디렉토리 :

    몇 가지 가능성이 있습니다. .pdf은 프로그램이 실행되는 곳이므로 작업 디렉토리에 저장됩니다.

    불행히도 프로그램을 시작한 후에이 값을 변경하는 것은 간단하지 않습니다. 그러나 프로그램을 시작하기 전에 변경하는 것은 간단합니다. 프로그램을 시작하기 전에 작업 디렉토리를 변경하십시오.

  2. 홈 디렉토리에서 파일을 만든 후 원하는 위치로 파일을 이동하십시오.

  3. 대상 위치가 포함되도록 명령을 변경하십시오. 펄 스크립트에는 출력을 특정 위치 (보통 -o 또는 --output)로 저장할 수있는 옵션이있을 수 있습니다.

    Runtime.exec("perl someprogram"); 
    

    같은 뭔가 :이 프로그램을 사용하면에서 바꿀 것

    Runtime.exec("perl someprogram -o /path/to/some.file") 
    
  4. 는이 작업을 수행 할 수있는 옵션이없는 경우, "출력 경로 재 지정"을 사용할 수 있습니다. 당신의 인수로 아래 무엇을 같은

    시도 뭔가 :

    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.의 경우 사용중인 펄 프로그램의 설명서를 참조해야합니다.