有没有办法在类路径中的目录中包含所有jar文件?
我正在尝试java -classpath lib/*.jar:. my.package.Program,它无法找到肯定在那些罐子里的类文件.我是否需要将每个jar文件分别添加到类路径中?
我有一个Maven项目,它生成一个jar文件并将所有依赖项复制到target/lib文件夹.我想在客户端的机器(windows)上执行这个项目.所以,我复制myproject.jar到C:\xyz文件夹和所有依赖项到C:\xyz\lib文件夹.如何从客户端的命令提示符执行此项目?我试图java -cp lib\*.jar -jar myproject.jar从C:\xyz文件夹使用,但它抛出以下错误.
Exception in thread "main" java.lang.NoClassDefFoundError: lib\commons-codec-1/3/jar
Caused by: java.lang.ClassNotFoundException: lib\commons-codec-1.3.jar
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: lib\commons-codec-1.3.jar. Program will exit.
Run Code Online (Sandbox Code Playgroud)
我想如果我在classpath(如java -cp lib\dep1.jar;dep2.jar)中指定所有依赖项,它将解决问题,但我不想这样做,因为我已经有40个库,并且它可能会在将来的版本中增长.有一个更好的方法吗?
我有一个jar,其内容如下所示,

以下是我的清单文件
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.7.0_06-b24 (Oracle Corporation)
Main-Class: org.sai.com.DerbyDemo
Class-Path: derby.jar derbyclient.jar derbynet.jar derbytools.jar
Run Code Online (Sandbox Code Playgroud)
当我尝试运行jar时,它抛出了一个ClassNotFoundExcception意思,它没有引用外部jar中的jar.
在Class-Path属性中,如何derby.jar在实际jar中引用jar(等)?
java.lang.ClassNotFoundException:com.hazelcast.core.Hazelcast
这一点很奇怪,因为我在运行java时已将hazelcast-1.8.5.jar添加到类路径中:
java -cp hazelcast-1.8.5.jar -jar myapp.jar
Run Code Online (Sandbox Code Playgroud)
所以我无法理解为什么我得到了ClassNotFoundException,当hazelcast jar确实存在并且在命令行中指定时.有什么想法吗?
顺便说一下,淡褐色很可爱!