単なる好奇心から。別のJavaプログラムからJavaファイルをコンパイルして実行できますか? もしそうなら、その知識源への参照を送ることができますか?
7 に答える
完全には読んでいませんでしたが、おそらくこれは役に立ちます。
Java 6を使用している場合、これを行うための最良の方法は、javax.tools.JavaCompiler
インターフェースを使用することです。
古いバージョンのJavaを使用している場合は、を使用してjavac
直接呼び出してから、サブクラス化してオーバーライドRuntime.exec()
することでクラスデータをロードする必要があります。ClassLoader
findClass
はい、できますが、JavaランタイムだけでなくJavaコンパイラも必要です。最初にソースを生成して保存し、次に動的クラスローディングを使用します(チュートリアルhttp://tutorials.jenkov.com/java-reflection/dynamic-class-loading-reloading.html)
Java Compiler Apiとこの小さな例を見てください。
javac を使用できます (JDK が必要です):
http://www.javaworld.com/javatips/jw-javatip131.html
Java ソース コードが既にファイルにある場合は、Java コンパイラを呼び出すだけです。Java コンパイラは、バージョン 1.6 の JVM ライブラリに組み込まれています。
これは、cmd プロンプトを呼び出すか、Java コードの Main クラスを使用して行うことができます。
どうだったかよく覚えていませんが、昔やったことがあります。