Java 创建Jar归档文件时会给出;无法找到或加载主类“;

Java 创建Jar归档文件时会给出;无法找到或加载主类“;,java,jar,manifest,Java,Jar,Manifest,我希望java-jar.jar启动我的应用程序,所以我不确定我在这里做错了什么。当我正常运行java代码时,lib/中确实有几个文件在我的类路径上,我需要包括这些文件吗 我的操作系统是Mac OS 10.11.1,如果有必要的话。似乎Llanfair.jar中的文件结构是错误的 根据您的评论jar-xf Llanfair.jar创建如下结构 $ cat Manifest.txt Main-Class: org.fenix.llanfair.Llanfair $ cat org/fenix/l

我希望java-jar.jar启动我的应用程序,所以我不确定我在这里做错了什么。当我正常运行java代码时,lib/中确实有几个文件在我的类路径上,我需要包括这些文件吗


我的操作系统是Mac OS 10.11.1,如果有必要的话。

似乎
Llanfair.jar
中的文件结构是错误的

根据您的评论
jar-xf Llanfair.jar
创建如下结构

$ cat Manifest.txt 
Main-Class: org.fenix.llanfair.Llanfair

$ cat org/fenix/llanfair/Llanfair.java | grep main
public static void main(String[] args) {
$ jar cfm Llanfair.jar Manifest.txt org
$ java -jar Llanfair.jar 
Error: Could not find or load main class org.fenix.llanfair.Llanfair
$ jar -xf Llanfair.jar
$ cat Llanfair/META-INF/MANIFEST.MF 
Manifest-Version: 1.0
Created-By: 1.8.0_25 (Oracle Corporation)
Main-Class: org.fenix.llanfair.Llanfair

$ ls Llanfair/org/fenix/llanfair/ | grep Llanfair
Llanfair$1.class
Llanfair$2.class
Llanfair$MenuItem.class
Llanfair$RecentMenuItem.class
Llanfair.class
$ java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
但是jar文件中的结构必须是

Llanfair/META-INF/MANIFEST.MF 
Llanfair/org/fenix/llanfair/Llanfair.class

我在清单中缺少类Path:value,我无法理解为什么它会以这种方式出现

META-INF/MANIFEST.MF 
org/fenix/llanfair/Llanfair.class
$cat Manifest.txt
类路径:lib/ui.jar lib/jnativehook-2.0.2.jar
主类:org.fenix.llanfair.llanfair
$jar cfm lanfair.jar Manifest.txt org lib
$java-jar.jar
^C$jar-xf lanfair.jar
$Llanfair
ls:Llanfair:没有这样的文件或目录
$cat/META-INF/MANIFEST.MF
清单版本:1.0
类路径:lib/ui.jar lib/jnativehook-2.0.2.jar
创建人:1.8.0_25(Oracle公司)
主类:org.fenix.llanfair.llanfair
$

编辑:有点复杂。我试图在lanfair.jar中包含jar依赖项。这是不允许的,因为/reasons/。上述方法之所以有效,是因为我在同一个目录下运行jar——因此lib/ui.jar之所以存在,是因为我在使用它进行构建。

您是否确保它是一个可运行的jar文件?-rwxr-xr-x 1 jbzdarkid staff 185844 Nov 13 04:08 Llanfair.jar调用-java Llanfair.jar时,请尝试包含对jar的完整宣誓。示例:-java C:\Llanfair\Llanfair.jar$java-jar/Users/jbzdarkid/Github/Llanfair\u decompile/Llanfair.jar错误:找不到或加载主类org.fenix.Llanfair.Llanfair您可以通过单击启动jar吗?jar-xf Llanfair.jar创建一个名为Llanfair的文件夹,我没有将cd放入文件夹。@jbzdarkid此评论与您的其他答案
jar-xf Llanfair.jar
ls Llanfair
,这导致了
ls:Llanfair:没有这样的文件或目录
。然后你可以
。手动提取会创建该文件夹。对不起,我不清楚。
$ cat Manifest.txt
Class-Path: lib/ui.jar lib/jnativehook-2.0.2.jar
Main-Class: org.fenix.llanfair.Llanfair

$ jar cfm Llanfair.jar Manifest.txt org lib
$ java -jar Llanfair.jar 
<normal application output>
^C$ jar -xf Llanfair.jar
$ ls Llanfair
ls: Llanfair: No such file or directory
<manually extracted Llanfair.jar using Archive Utility>
$ cat Llanfair/META-INF/MANIFEST.MF 
Manifest-Version: 1.0
Class-Path: lib/ui.jar lib/jnativehook-2.0.2.jar
Created-By: 1.8.0_25 (Oracle Corporation)
Main-Class: org.fenix.llanfair.Llanfair

$