Java 谷歌卡尺示例测试不';不行?

Java 谷歌卡尺示例测试不';不行?,java,maven,caliper,Java,Maven,Caliper,我下载了最新的GoogleCaliper源代码,并使用maven构建了它。现在,我正在尝试运行谷歌卡钳示例测试。我正在使用下面的命令执行测试 java -cp /home/rakesh/programming/refcode/caliper/caliper/target/caliper-1.0-SNAPSHOT.jar com.google.caliper.Runner examples.StringBuilderBenchmark 但是我得到了以下错误 Exception in threa

我下载了最新的GoogleCaliper源代码,并使用maven构建了它。现在,我正在尝试运行谷歌卡钳示例测试。我正在使用下面的命令执行测试

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)
但是错误是一样的,它看起来不像命令正在查看另一个包含Splitter类的jar文件。

我的答案不是真正的答案,但是它太长了,不适合评论

不幸的是,我对maven几乎一无所知。对我来说,有效的方法是下载git存储库并创建eclipse项目。这当然不是一个干净的解决方案,但它很简单,让我可以从图书馆学习

对我有用的是:

在我的工作树中,我找到pom.xml,切换到该目录并运行
mvn安装
。它在
~/.m2/repository
的深处创建了一些jar。由于路径太长,我没有耐心,我通过
ln-s~/.m2/repository/com/google/
创建了一个符号链接。我手动编译了
StringBuilderBenchmark
,并准确地得到了您的错误

然后我在我的guava文件夹中运行了
mvn安装
,现在正在运行

java -cp .:\
./google/caliper/caliper/1.0-SNAPSHOT/caliper-1.0-SNAPSHOT.jar:\
./google/guava/guava/12.0/guava-12.0.jar \
examples/StringBuilderBenchmark
投诉中缺少
com/google/gson/JsonParser
。然后你可能需要谷歌仪器,就这样


这肯定不是正确的道路。马文应该照顾好一切,我非常希望它能。我建议在您的问题中添加标签
maven

我遇到了上述所有错误。下面是修复方法


$export CLASSPATH=/home/deepakkv/projects/poc/benchmarkparquet/target/classes:~/.m2/repository/com/google/caliper/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.jar

$java com.google.caliper.Runner com.parquet.benchmark.benchmarkparquetdirect0%场景{vm=java,trial=0,benchmark=TestContains1,length=1}6.42 ns;σ=0.46 ns@10次试验 50%的场景{vm=java,试用=0,基准=TestContains2,长度=1}5.46ns;σ=0.26 ns@10次试验

基准ns线性运行时 测试包含16.42============================== TestContains2 5.46=========================

虚拟机:java 审讯:0
长度:1

不知道appengine,但拆分器是它的一部分。关于该命令,您一定是做错了什么,因为它别无选择,只能使用提供的类路径。事实上,maven应该负责所有事情……如果我使用提供的命令,那么它也不起作用。你能给我一个命令的例子吗?我应该在哪个目录下运行这个命令?
java -cp .:\
./google/caliper/caliper/1.0-SNAPSHOT/caliper-1.0-SNAPSHOT.jar:\
./google/guava/guava/12.0/guava-12.0.jar \
examples/StringBuilderBenchmark