2012-08-26 8 views
3

J'ai téléchargé le dernier code source de Google Caliper et je l'ai construit avec maven. Maintenant, je suis en train d'exécuter le test exemple google étrier donné here.. J'utilise la commande ci-dessous pour exécuter le test.google exemple de test Caliper ne fonctionne pas?

java -cp /home/rakesh/programming/refcode/caliper/caliper/target/caliper-1.0-SNAPSHOT.jar com.google.caliper.Runner examples.StringBuilderBenchmark 

Mais j'obtiens l'erreur suivante.

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Splitter 
    at com.google.caliper.Runner.<clinit>(Runner.java:67) 
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Splitter 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 

J'ai essayé de regarder dans le fichier jar de l'étrier et je ne pouvais pas trouver le fichier de classe com.google.common.base.Splitter. Même je ne peux pas obtenir le fichier Splitter.java. Quelqu'un peut-il me suggérer ce qui me manque ici?

EDIT1:
je me suis dit que la classe com.google.common.base.Splitter est présent dans le fichier jar AppEngine-tools-sdk-1.2.1.jar J'ai inclus le fichier jar dans la commande comme indiqué au dessous de.

java -cp /home/rakesh/programming/refcode/caliper/caliper/target/caliper-1.0-SNAPSHOT.jar:/home/rakesh/programming/refcode/caliper/examples/appengine-tools-sdk-1.2.1.jar com.google.caliper.Runner examples.StringBuilderBenchmark 

Mais l'erreur est la même, il ne ressemble pas à la commande est à la recherche dans l'autre fichier jar qui a la classe Splitter.

+2

Aucune idée appEngine , mais «Splitter» fait partie de [Guava] (http://code.google.com/p/guava-libraries).Concernant la commande, vous devez faire quelque chose de mal, car elle n'a pas d'autre choix que d'utiliser le CLASSPATH fourni. En fait, maven devrait prendre soin de tout ... – maaartinus

+0

Si j'utilise la commande fournie alors aussi ça ne marche pas. Pouvez-vous me donner un exemple de commande et dans quel répertoire je devrais exécuter cette commande? – Rakesh

Répondre

1

Ma réponse n'est pas une vraie réponse, mais c'est trop long pour un commentaire.

Malheureusement, je ne connais presque rien à propos de maven. Ce qui fonctionne pour moi, c'est le téléchargement du dépôt git et la création du projet eclipse. Ce n'est sûrement pas une solution propre, mais c'est facile et cela me permet d'apprendre des bibliothèques.

Ce qui a fonctionné pour moi:

Dans mon arbre de travail je trouve pom.xml, commuté dans ce répertoire et couru mvn install. Il a créé quelque pot profondément quelque part dans ~/.m2/repository. Comme le chemin était trop long pour ma patience, j'ai créé un lien symbolique via ln -s ~/.m2/repository/com/google/ .. J'ai compilé manuellement le StringBuilderBenchmark et j'ai eu exactement votre erreur.

Puis j'ai couru mvn install dans mon dossier de goyave et maintenant en cours d'exécution

java -cp .:\ 
./google/caliper/caliper/1.0-SNAPSHOT/caliper-1.0-SNAPSHOT.jar:\ 
./google/guava/guava/12.0/guava-12.0.jar \ 
examples/StringBuilderBenchmark 

se plaint de manquer de com/google/gson/JsonParsergson. Alors vous pouvez avoir besoin de google instrumenter et c'est tout.

Ce n'est certainement pas le chemin à parcourir. Maven devrait prendre soin de tout et j'espère vraiment que ça peut. Je suggère d'ajouter l'étiquette maven à votre question.

1

J'ai fait face à toutes les erreurs comme ci-dessus. Voici le correctif

$ export CLASSPATH=/home/deepakkv/projects/poc/benchmarkparquet/target/classes:~/.m2/repository/com/google/caliper/caliper/0.5-rc1/caliper-0.5-rc1.jar:~/.m2/repository/com/google/guava/guava/14.0.1/guava-14.0.1.jar:/home/deepakkv/softwares/google-gson-2.2.3/gson-2.2.3.jar

$ java com.google.caliper.Runner com.parquet.benchmark.BenchmarkParquetDirectWrites 0% Scenario{vm=java, trial=0, benchmark=TestContains1, length=1} 6.42 ns; σ=0.46 ns @ 10 trials 50% Scenario{vm=java, trial=0, benchmark=TestContains2, length=1} 5.46 ns; σ=0.26 ns @ 10 trials

ns de référence d'exécution linéaire TestContains1 6,42 ============================== TestContains2 5,46 =========================

vm: java essai: 0 longueur: 1

Questions connexes