2017-01-16 9 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

JVMベースのスクリプト言語(GroovyやBeanscriptなど)で成功するかもしれません。 – Thilo

+0

この動作に近づけるためのJavaコードを書くことができます。 Javaコードはメモリにのみ格納することができますが、Javaではクラスファイルを実際にディスクに書き込む必要があります。だからあなたはそれらを終了した後でそれらを削除する必要があります。 –

+0

あなたが書いているほとんどすべてのJavaプログラムは、いくつかのサードパーティのライブラリを使いたいと考えています。 JVMスクリプティングツールは、通常、Mavenリポジトリから依存関係ジャーを取得する機能をサポートしています。 – Thilo

答えて

0

あなたはそれをusinはbashを行うことができます。

Basicalyそれは次のようになります。

#!/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を追加して不要な場合は削除できます。

関連する問題