Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java清单文件中的类路径读取不正确_Java_Classpath_Manifest_Relative Path - Fatal编程技术网

Java清单文件中的类路径读取不正确

Java清单文件中的类路径读取不正确,java,classpath,manifest,relative-path,Java,Classpath,Manifest,Relative Path,我正在尝试运行一个jar文件,它引用了一些与包捆绑在一起的外部jar文件。我无法将任何依赖项工具下载到系统上,因此我尝试使用清单文件来完成此操作 我正在运行的jar名为attachmentUploader.jar,同一目录中有一个libraries文件夹,其中包含外部jar文件 这是我的MANIFEST.txt文件: Manifest-Version: 1.0 Created-By: 1.6.0 (Sun Microsystems Inc.) Main-Class: com.custom.tes

我正在尝试运行一个jar文件,它引用了一些与包捆绑在一起的外部jar文件。我无法将任何依赖项工具下载到系统上,因此我尝试使用清单文件来完成此操作

我正在运行的jar名为
attachmentUploader.jar
,同一目录中有一个
libraries
文件夹,其中包含外部jar文件

这是我的
MANIFEST.txt
文件:

Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: com.custom.test.postClient
Class-Path: attachmentLoader.jar libraries/java-json.jar libraries/org.apache.commons.httpclient_3.1.0.v20100508.jar libraries/org.apache.commons.logging_1.0.4.v3920100508.jar
然后,我使用以下命令行运行此命令:

java -jar "C:/Users/My Documents/attachmentUploader.jar"
但会出现以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/httpclient/methods/RequestEntity 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.httpclient.methods.RequestEntity
    at ......

Could not find the main class: com.tririga.custom.test.Tririga_postClient. Program will exit
那里也有一个堆栈跟踪,但不幸的是,我无法复制-如果这对于解决问题是绝对必要的,我将费力地键入它

这个错误消息对我来说似乎很奇怪,因为似乎有两个错误——在httpclient jar中找不到类和找不到主类。我已经检查过了,它们都在我所说的位置

我错过了一些简单的事情吗?相对路径是否正确?

您是否尝试过以下方法:

Class-Path: . ./attachmentLoader.jar ./libraries/java-json.jar ./libraries/org.apache.commons.httpclient_3.1.0.v20100508.jar ./libraries/org.apache.commons.logging_1.0.4.v3920100508.jar

在自己的类路径中指定
attachmentloader.jar
是没有意义的。

按照我的方法,你应该可以这样做,不是吗?我也试过你的方法,但仍然得到完全相同的信息。第一个点是故意的吗?好的。我认为你说的是对的。更多的研究告诉我你可能正在寻找:()我的JAR文件不在原始JAR文件中,但是…我已经将它们包含在同一目录的文件夹中。我想我说得对,这意味着它应该像我所做的那样包含在类路径中。很奇怪。