设置类路径仍然找不到外部jar

Con*_*tin 1 java vlcj

我正在尝试从命令行运行VLCJ测试jar。VLCJ需要两个外部JAR

  • jna.jar
  • platform.jar

如果将这些jar与尝试运行的可执行jar放在同一目录中,则可以成功运行它。但是,如果我将它们放在自己的目录中并执行以下操作:

java -classpath "C:\Users\Constantin\workspace\Java Libraries\JNA" -jar executable.jar
Run Code Online (Sandbox Code Playgroud)

它无法从JNA库中找到一个类。我是Java的新手,我的搜索没有揭示可能的答案。所以我希望有人可以帮助回答:

我该如何调试?为什么找不到罐子?我的-classpath做错了吗?

先感谢您!

康斯坦丁

Dav*_*ton 5

显式地包括罐子,或使用简单的*通配符,但包括可执行罐子。main在命令行上指定可执行jar的类(它将在清单中)。

java -classpath "C:\Users\Constantin\workspace\Java Libraries\JNA\*;executable.jar" com.foo.Bar
Run Code Online (Sandbox Code Playgroud)

(哪里com.foo.Bar是包含main方法的类,即应用程序的入口点。)

请参阅Java选项文档 - jar指定后,所有其他类路径信息将被丢弃,并且您指定的jar必须包含所有用户类。


无关,但我总是尝试避免在Windows上使用空格的路径。好吧,到处都是,但是特别是在处理与Java相关的东西时。它应该可以正常工作,但在某些情况下却不能(我在看您,某些应用服务器的某些版本)。