2017-01-16 6 views
-1

Java CLI에 인수로 코드를 전달하고 코드를 파일에 쓰지 않고 컴파일하여 메모리에서 실행할 수 있는지 궁금합니다. 파일, 컴파일 된 파일을 실행 한 다음 모든 것을 삭제하십시오. 그렇지 않은 경우 UNIX 환경 (Linux/macOS)에서이 동작을 에뮬레이션 할 수 있습니까?CLI에 인수로 제공되는 Java 코드 실행

예 :

> java --code 'public class Main { public static void main(String[] args) { System.out.println("Hello, world."); } }'

+0

Groovy 또는 Beanscript와 같은 JVM 기반 스크립팅 언어 중 하나를 사용하면 더 많은 성공을 거둘 수 있습니다. – Thilo

+0

이 동작에 가까워 질 수있는 Java 코드를 작성할 수 있습니다. Java 코드를 메모리에만 저장하도록 할 수 있지만 Java는 클래스 파일을 실제로 디스크에 기록하도록 요구합니다. 따라서 작업을 마친 후에도 작업을 삭제해야합니다. –

+0

작성하려는 거의 모든 Java 프로그램은 몇 가지 타사 라이브러리를 사용하려고합니다. JVM 스크립팅 도구는 대개 Maven 저장소에서 종속성 병을 가져 오는 기능을 지원합니다. – Thilo

답변

0

당신은 bash는저기서 그것을 할 수 있습니다.

이것은 기본적는 다음과 같이 표시됩니다

#!/bin/bash 

while getopts ":c" opt; do 
    case $opt in 
    c) 
     echo $2 > ./Main.java 
     javac Main.java 
     ;; 
    \?) 
     echo "Invalid option: -$OPTARG" >&2 
     ;; 
    esac 
done 

그것은, 코드로 c를 인수 소요 임시 파일에 저장 및 컴파일합니다. 나중에 rm Main.java를 추가하여 불필요한 경우 삭제할 수 있습니다.