【发布时间】:2018-01-03 19:24:01
【问题描述】:
第一次发帖,很抱歉我的格式不好。我有一个在 eclipse 中开发的 java 程序。我将程序导出为 jar (myJar.jar),然后将程序所依赖的所有外部 jar 放入名为 lib 的文件夹中,该文件夹与 myJar.jar 位于同一位置。为了设置我的类路径,我有一个格式如下的清单文件:
Main-Class: exe.myMain
Class-Path: lib/jar_1.jar lib/jar_2.jar ... lib/jar_n.jar
Manifest-Version: 1.0
但是,当我尝试使用“java -jar myJar.jar”运行程序时,来自 lib 中的 jar 中的类没有被加载(我收到 ClassNotFoundException)。我在我的程序中使用了以下代码来打印类路径:
ClassLoader cl = ClassLoader.getSystemClassLoader();
URL[] urls = ((URLClassLoader)cl).getURLs();
for(URL url:urls){
System.out.println(url.getFile());
}
当我运行这段代码时,类路径就是“myJar.jar”。
我有两个问题:
1.) 上面的代码实际上是在运行时给了我 JRE 的类路径,还是只是给了我主类的地址?
2.) 鉴于上面的代码确实在运行时给了我 JRE 的类路径,我做错了什么吗?
请随时询问更多信息,我很乐意为您提供所需的信息。
【问题讨论】: