【发布时间】:2021-04-29 19:50:53
【问题描述】:
我是一名开发学生 我很想在我的项目中使用 Picocli,不幸的是我不明白如何使用 Picocli 进行编译 我尝试按照此处https://picocli.info/ 或此处https://picocli.info/quick-guide.html 给出的说明进行操作,但编译步骤并不详细。我没有使用 Gradle 或 Maven,但它们并没有真正按要求列出。
这是它尝试编译 picocli.info 网页中给出的校验和示例的方式:
jar cf checksum.jar Checksum.java ; jar cf picocli-4.6.1.jar CommandLine.java && echo "hello" > hello
然后我简单地复制粘贴这个给定的命令:https://picocli.info/#_running_the_application
java -cp "picocli-4.6.1.jar:checksum.jar" CheckSum --algorithm SHA-1 hello
并得到以下结果:
Error: Could not find or load main class CheckSum
Caused by: java.lang.ClassNotFoundException: CheckSum
我尝试自己编译所有内容,然后像这样添加 .jar:
java CheckSum -jar picocli-4.6.1.jar
然后错误输出是这样的:
Exception in thread "main" java.lang.NoClassDefFoundError: picocli/CommandLine
at CheckSum.main(Checksum.java:33)
Caused by: java.lang.ClassNotFoundException: picocli.CommandLine
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 1 more
巫婆我不明白,因为我添加了依赖项。
我错过了什么?
提前致谢
【问题讨论】:
-
我认为您应该为
CheckSum提供完全限定名称,例如com.foo.bar.CheckSum。 - 您是否指定了 CheckSum 所在的包?