我下载了最新的google caliper源代码并使用maven构建它。现在我正在尝试运行给定here.的google caliper示例测试。我使用以下命令来执行测试。
java -cp /home/rakesh/programming/refcode/caliper/caliper/target/caliper-1.0-SNAPSHOT.jar com.google.caliper.Runner examples.StringBuilderBenchmark
但我收到以下错误。
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)
我试图查看卡尺jar文件,但找不到com.google.common.base.Splitter类文件。即使我没有得到Splitter.java文件。任何人都可以建议我在这里缺少什么吗?
EDIT1:
我发现com.google.common.base.Splitter类出现在appengine-tools-sdk-1.2.1.jar jar文件中我在命令中包含了jar文件,如下所示。
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
但是错误是一样的,它看起来不像命令正在查看具有Splitter类的其他jar文件。
答案 0 :(得分:1)
我的答案不是真正的答案,但评论时间太长了。
不幸的是,我对maven几乎一无所知。对我有用的是下载git存储库并创建eclipse项目。这肯定不是一个干净的解决方案,但它很容易,让我可以从图书馆学习。
对我有用的是什么:
在我的工作树中,我找到了pom.xml,切换到该目录并运行mvn install
。它在~/.m2/repository
深处创建了一些jar。由于我的耐心路径太长,我通过ln -s ~/.m2/repository/com/google/ .
创建了一个符号链接。我手动编译StringBuilderBenchmark
并得到了你的错误。
然后我在我的guava文件夹中运行了mvn install
,现在正在运行
java -cp .:\
./google/caliper/caliper/1.0-SNAPSHOT/caliper-1.0-SNAPSHOT.jar:\
./google/guava/guava/12.0/guava-12.0.jar \
examples/StringBuilderBenchmark
抱怨gson遗失了com/google/gson/JsonParser
。然后你可能需要google instrumenter,就是这样。
这肯定不是要走的路。 Maven应该照顾好一切,我非常希望它可以。我建议在您的问题中添加标记maven
。
答案 1 :(得分:1)
我面对如上所述的所有错误。以下是修复
$ 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线性运行时 TestContains1 6.42 ============================== TestContains2 5.46 =========================
vm:java 审判:0 长度:1