JavaCompilerは、jarファイルから呼び出されたときにnullポインタを返します。jarファイル内のJavaCompiler
コマンドラインからJavaCompilerでプログラムを実行すると、すべて正常に動作します。 JDKが私のOSに正しくインストールされています。
なぜ機能しないのですか?
コード:
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
Iterable<String> options = Arrays.asList(new String[] { "-d", currentDir+"/cache/","-sourcepath",currentDir+"/srcss/"});
Iterable<? extends JavaFileObject> compUnits = fileManager.getJavaFileObjects(fRun);
Boolean compRes = compiler.getTask(null, fileManager, null, options, null, compUnits).call();
場所で私達はJDKからそれを呼び出しているか、それが適切なjarファイルが含まれていることを確認しかし、私のしてください可能性があり、それはnullを返します(通常は、我々は唯一のJREの下で実行される)JREの下でそれを使用している場合システムがJDKに設定されている。コマンドラインからプログラムを起動すると、JDKから起動します。 jarをJDKに設定する方法は? – ctekk
アプリケーションで 'System.getProperty(" java.home ")'によって返された文字列を出力し、それが異なるかどうかを確認します。 – aioobe