복붙노트

[HADOOP] Java에서 실행할 수 있도록 실행 파일을 압축 할 수 있습니까?

HADOOP

Java에서 실행할 수 있도록 실행 파일을 압축 할 수 있습니까?

간단히 말해, 컴파일 된 실행 파일을 Java jar 파일에 저장 한 다음 Java에서 ProcessBuilder를 통해 실행할 수 있어야합니다.

그 이유는, Elastic Map Reduce 작업을 처리하는 이미지의 구성 요소로서 ImageMagick 실행 파일 주위에 Java 래퍼를 사용하고 싶습니다. EMR은 jar 파일 만 가져올 것으로 예상하므로 데이터 노드에 소프트웨어를 설치할 공간이 없다고 생각합니다.

해결법

  1. ==============================

    1.jar 파일의 실행 파일은 리소스이며, Stream을 통해 액세스하고 TEMP 디렉토리로 실행 파일을 확장 한 다음 ProcessBuilder를 사용하여 실행할 수 있습니다.

    jar 파일의 실행 파일은 리소스이며, Stream을 통해 액세스하고 TEMP 디렉토리로 실행 파일을 확장 한 다음 ProcessBuilder를 사용하여 실행할 수 있습니다.

    File target = new File( System.getProperty( "java.io.tmpdir" ), <filename> );
    InputStream  is =
       getClass().getClassLoader().getResourceAsStream( <path to rc> );
    OutputStream os = new FileOutPutStream( target );
    <copy is to os>
    Process p = new ProcessBuilder( target ).start();
    
  2. from https://stackoverflow.com/questions/15910235/is-it-possible-to-jar-up-an-executable-so-that-it-can-be-run-from-java by cc-by-sa and MIT license