好的,所以我有以下文件树:
<appfolder>
- MyApp.jar
- lib/
- log.jar
- someother.jar
- someother.jar
- someother2.jar
- config.properties
- otherfiles.extension
我已经尝试了几十种方法来启动这个应用程序。MyApp 包含以下内容
MANIFEST.MF:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.7.0_06-b24 (Oracle Corporation)
Main-Class: myapp.Main
Class-Path: MyApp.jar lib/*
如果我调用java -jar MyApp.jar它总是说 lib/log.jar 中的所有类都无法加载。
这是我尝试过的组合的一部分:
- *.jar lib/*
- *.jar lib/*.jar
- *.jar ./lib/*.jar
- ./*.jar lib/*.jar
- *.jar ./lib/*.jar
- tbc
没有任何效果。Java 总是告诉我它在 lib/log.jar 中找不到类
我的下一个尝试是通过命令行指定类路径。
java -cp "MyApp.jar:lib/*" myapp.Main
但即使这样也行不通。在这种情况下,Java 说它找不到 myapp.Main 类。
我想我做错了什么,因为我发现的方法都没有奏效。如果我将 lib/log.jar 中的类放入 myApp.jar 并启动它,它将起作用。但这不可能是解决方案。
有任何想法吗?
编辑: 我不想命名每一个 lib jar。我只想让 ClassLoader 在 ClassPath 中搜索所需的类。我已经看过很多次了。