0

開示:私はJavaにあまり詳しくないので、以下で真実でないことがあれば指摘してください

インストルメント化された JRE を使用して、インストルメント化されたコードの Caliper でいくつかのマイクロベンチマークを実行しようとしています。

JAVA_HOMEインストルメント化された JRE を指すように設定しました (これ$JAVA_HOME/bin/javaが適切です)。$JAVA_TOOL_OPTIONS(bootclasspath と javaagent を含む) を使用してさまざまなオプションをセットアップします。

次に、通常どおりキャリパーを実行します (インストルメント化されていない JRE を使用する場合は正常に動作します)。次の例外が発生し続けます。

An exception was thrown from the benchmark code.
java.lang.RuntimeException: failed to start subprocess
    at com.google.caliper.Runner.measure(Runner.java:278)
    at com.google.caliper.Runner.runScenario(Runner.java:229)
    at com.google.caliper.Runner.runOutOfProcess(Runner.java:378)
    at com.google.caliper.Runner.run(Runner.java:97)
    at com.google.caliper.Runner.main(Runner.java:423)
Caused by: java.io.IOException: Cannot run program "java" (in directory "extra/"): error=2, No such file or directory 

$JAVA_HOME/bin/が最初にあることを確認し、現在の作業ディレクトリへの$PATHシンボリックリンクを試みましたが、すべて役に立ちませんでした。$JAVA_HOME/bin/java

誰にも提案はありますか?私はおそらくこれを解決しようとして5時間以上費やしました...

[編集]

したがって、インストルメント化された JRE に焦点を当てた、より広範な質問になると思います。簡単なテストを実行しました。ここでは、ProcessBuilder実行するだけの を作成しますls。インストルメント化されていない Java では問題なく動作しますが、インストルメント化されたバージョンでは失敗し、同じ種類のエラーが発生します ( error=2)。助言がありますか?

4

1 に答える 1

0

問題は、キャリパーやより広範なインストルメント化された JRE ではなく、むしろ私にはありませんでしchmod +x jre/bin/*chmod +x jre/lib/*。その後、問題は解決しました。

于 2016-02-10T17:40:37.553 に答える