2016-02-09 2 views
0

Divulgation JRE: Je ne suis pas super familier avec Java, donc si quelque chose sonne faux ci-dessous, s'il vous plaît signalerEn utilisant Étrier 0,5 avec le code instrumenté/

Je suis en train de faire quelques microbenchmarks avec Caliper pour le code instrumenté, avec un JRE instrumenté.

J'ai défini mon JAVA_HOME pour qu'il pointe vers le JRE instrumenté (de sorte que $JAVA_HOME/bin/java soit approprié). Je configure diverses options en utilisant $JAVA_TOOL_OPTIONS (y compris un bootclasspath et javaagent).

Je cours alors que l'étrier je habituellement (qui lors de l'utilisation d'un fonctionnement non instrumenté JRE fine), et je continue à recevoir l'exception suivante

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 

J'ai essayé de faire que le $JAVA_HOME/bin/ est d'abord en $PATH, essayé symlinking $JAVA_HOME/bin/java au répertoire de travail en cours, mais tout en vain.

Quelqu'un a des suggestions? J'ai probablement passé plus de 5 heures à essayer de travailler à travers celui-ci ...

[EDIT]

Je pense que cela pourrait être une question plus large, en se concentrant sur le JRE instrumenté. J'ai couru un test simple, où je crée un ProcessBuilder qui exécute juste ls. Cela fonctionne bien avec java non instrumenté, mais échoue avec la version instrumentée, avec le même type d'erreur (error=2). Aucune suggestion?

+0

Je termine cette question, car le problème ne concernait pas le calibre, ni les JRE instrumentés plus larges, mais le mien. Pour ceux qui étaient intéressés, je devais chmod + x jre/bin/* et chmod + x jre/lib/*. Mmm semble que je ne peux pas fermer, alors je vais juste ajouter cette réponse et en finir avec. – JPC

Répondre

0

Le problème ne concernait pas les étriers, ni les JRE instrumentés plus larges, mais plutôt les numéros chmod +x jre/bin/* et chmod +x jre/lib/*. Après cela, le problème a été résolu.