我试图从命令行运行VLCJ测试jar。 VLCJ需要两个外部JAR
如果我将这些jar放在与我试图运行的可执行jar相同的目录中,我可以成功运行它。但是,如果我将它们放在自己的目录中并执行以下操作:
java -classpath "C:\Users\Constantin\workspace\Java Libraries\JNA" -jar executable.jar
它找不到JNA库中的类。我是Java的新手,我的搜索没有揭示可能的答案。所以我希望有人可以帮忙回答:
我该如何调试?为什么找不到罐子?我的-classpath做错了什么?
提前谢谢!
顿
答案 0 :(得分:5)
明确包含jar,或使用简单的*
通配符,但还包含可执行jar。在命令行上指定可执行jar的main
类(它将在清单中)。
java -classpath "C:\Users\Constantin\workspace\Java Libraries\JNA\*;executable.jar" com.foo.Bar
(其中com.foo.Bar
是包含main
方法的类,即应用入口点。)
请参阅Java options docs - 一旦指定jar
,就会丢弃所有其他类路径信息,并且您指定的jar必须包含所有用户类。
不相关,但我总是尽量避免在Windows上使用空格的路径。好吧,到处都是,但特别是在处理与Java相关的东西时。它应该工作,并且通常会这样做,但是当它没有(我正在看着你,某些应用服务器的某些版本)时会有边缘情况。