2012-02-26 30 views
0

現在、私は個人的な(多分public)Java端末を作成しています。私は実行時にJavaファイルをコンパイルするためのコマンドを作成したいと思いますが、実際にこれを行う方法についてはあまりよく分かりません。出来ますか?それとも、私はただ夢見ているのですか?Javaファイル内のコードを使用してJavaファイルをコンパイルする

+0

Javaスクリプトのチェック** javax.script ** technology;たとえば、次のようになります。http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/ – ecle

答えて

0

@ eeeのコメントjavax.scriptはおそらくあなたのプロジェクトに非常によく合っていることに同意します。スクリプトコードはJavaコードよりも扱いやすいです。私はプラグインAPIのためにこれを過去にうまく使用しましたが、それを起動して実行する上で問題はないことを覚えていません。

実行時に実際のJavaをコンパイルすることについて私が知っているほとんどのプロジェクトでは、Eclipse compilerを使用しています。 Java 6 javacにも完全にプログラムでアクセスできます。私はこれらのどちらも自分で使ったことはありません。これらの2つのコンパイラやその他のコンパイラは、必要に応じてCommons-JCIからアクセスできます。

+0

これをすべて学習することは本当に必要ですか?私はちょうどそれの基礎を学んでいるので、私は今何かを探しているわけではありません。一度私はすべてのパットを持っている、私はすべてのコードをアップグレードし、すべてのセキュリティを確保します。 –

+0

それをすべて知っている必要はありません。ちょうど何かを選び、それに従ってください。 Java 7をお使いの場合は、おそらくAndrew Thompsonの答えが使えるでしょう。 – Barend

1

Groovyを使用することもできます。アプリケーション内から1行または2行のJavaコードをコンパイルして実行したい場合は非常に便利です。アプリケーションは、動的に生成されたコードのコンパイルにのみ使用されるGroovyとともに、通常のJavaで実行できます。どちらのソリューションを選択しても、コードとしてのユーザー入力を実行するとセキュリティ上の問題(注射攻撃に対する脆弱性)が発生する可能性があるため、注意してください。

+0

完全なJavaファイルをコンパイルするコードが必要なので、これは問題です。 –

+0

この場合、Andrew Thompsonの答えをチェックしてください。また、[JavaCompiler class](http://docs.oracle.com/javase/6/docs/api/javax/tools/JavaCompiler.html)を直接使用することもできます。ソースを置くテンポラリファイルでjavac実行ファイルを呼び出すこともできますが、人々が示唆している他の解決策ほどエレガントで移植性がありません。 –

1

Javaファイルをコンパイル

STBCを参照してください。 JavaCompilerを使用して、テキスト領域のコードをコンパイルします。

関連する問題