我在 stackoverflow 上查看这个问题,并认为我会尝试自己运行基准测试。我下载了caliper并使用maven成功编译。然后,我使用 maven 创建的 jar 从链接的问题中成功编译了HashCodeBenchmark 。但是,当我尝试运行 HashCodeBenchmark 时,java 抱怨它在 jar 中找不到入口点类。
我完全困惑,不知道问题是什么。
编译:
$ javac benchmark/HashCodeBenchmark.java \
-classpath caliper-1.0-beta-SNAPSHOT-all.jar \
&& echo success
success
跑:
$ java benchmark.HashCodeBenchmark -classpath caliper-1.0-beta-SNAPSHOT-all.jar
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/caliper/runner/CaliperMain
at benchmark.HashCodeBenchmark.main(HashCodeBenchmark.java:64)
Caused by: java.lang.ClassNotFoundException: com.google.caliper.runner.CaliperMain
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 1 more