google Caliper示例测试不起作用?

时间:2012-08-26 06:20:50

标签: java maven caliper

我下载了最新的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文件。

2 个答案:

答案 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