0

JDK6 を使用して、UI からの入力 src をコンパイルし、すぐに実行しています。

しかし、問題は、デフォルトで私のアプリが jdk ではなく jre を使用していることです。

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

常に null を返します。

そして、各サーバーにJDK6もインストールされていることに気付いたので、この問題の解決を期待してこれを書きます:

System.setProperty("java.home", "\opt\jdk-i386-60");
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
// Dynamic compile and run app

しかし、それは機能しませんでした。おそらく Java 環境は、設定したばかりの場所に変更されず、まだ null オブジェクトを取得しています。

では、私の質問は、どのように jre 環境を jdk に切り替えて、JavaCompiler オブジェクトを取得できるようにするかということです。

ありがとう。

4

1 に答える 1

1

設定しようとしないでくださいjava.home!コマンド ライン スイッチを使用して設定すると、通常、多くの問題が発生します (ライブラリが見つからないなど)。経由で設定してsetProperty()も、通常は影響しません。

代わりに、特定の Java インストールでアプリケーションを実行する場合は、そのjava実行可能ファイルを使用してアプリケーションを起動します。

/opt/jdk-i386-60/bin/java -jar myApp.jar
于 2011-05-06T06:43:02.120 に答える