小编fji*_*nez的帖子

JRE 不使用可运行 jar 的清单文件指定的类路径

第一次发帖,对于我的格式不佳深表歉意。我有一个在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
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用“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());
}
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,类路径只是“myJar.jar”。

我有两个问题:

1.) 上面的代码实际上在运行时为我提供了 JRE 的类路径,还是只是为我提供了主类的地址?

2.) 鉴于上面的代码确实在运行时为我提供了 JRE 的类路径,我做错了什么吗?

请随时询问更多信息,我很乐意提供您所需的信息。

java manifest

5
推荐指数
1
解决办法
2739
查看次数

标签 统计

java ×1

manifest ×1