Java 获得;错误:无法找到或加载类“0”;即使我在清单文件中定义了主类

Java 获得;错误:无法找到或加载类“0”;即使我在清单文件中定义了主类,java,jar,Java,Jar,我试图通过命令行构建一个jar文件,但遇到了一些问题 以下是我的jar文件的内容: META-INF/ META-INF/MANIFEST.MF bin/main/Main.class 以及我的MANIFEST.MF的内容 Manifest-Version: 1.0 Main-Class: bin.main.Main 在我看来,这应该是可行的,但是当我尝试在命令行上使用 java-jar-jar.jar 我听说 **错误:无法找到或加载main类bin.main.main**请确保main.

我试图通过命令行构建一个jar文件,但遇到了一些问题

以下是我的jar文件的内容:

META-INF/
META-INF/MANIFEST.MF
bin/main/Main.class
以及我的MANIFEST.MF的内容

Manifest-Version: 1.0
Main-Class: bin.main.Main
在我看来,这应该是可行的,但是当我尝试在命令行上使用

java-jar-jar.jar

我听说


**错误:无法找到或加载main类bin.main.main**

请确保main.java具有
包bin.main在第一行


Seelenvirtuose补充说,如果包是main,则类文件必须放入
/main/main.class
(而不是
/bin/main/main.class
)。

确保main.java具有
包bin.main在第一行



Seelenvirtuose补充说,如果包是main,则类文件必须放入
/main/main.class
(而不是
/bin/main/main.class
)。

您确定包是bin.main吗?main.java的包声明是package main;没有办法使jar与当前目录结构一起工作吗?我想将Main.java文件保存在src/Main/中,将Main.class文件保存在bin中/main@Lifus如果包是
main
,则类文件必须放入
/main/main.class
(而不是
/bin/main/main.class
).@Seelenvirtuose现在我的Main.java文件位于src/Main/Main.java中,如果我尝试用javac src/Main/Main.java编译它,.class文件将与.java文件放在同一目录中。但是如果我试图告诉编译器将类文件放在其他地方,使用javac-d main src/main/main.java,则类文件将被放在main/main/main.class中。如何在保持正确的包结构的同时将.class和.java文件保存在单独的目录中?您确定包是bin.main吗?main.java的包声明是package main;没有办法使jar与当前目录结构一起工作吗?我想将Main.java文件保存在src/Main/中,将Main.class文件保存在bin中/main@Lifus如果包是
main
,则类文件必须放入
/main/main.class
(而不是
/bin/main/main.class
).@Seelenvirtuose现在我的Main.java文件位于src/Main/Main.java中,如果我尝试用javac src/Main/Main.java编译它,.class文件将与.java文件放在同一目录中。但是如果我试图告诉编译器将类文件放在其他地方,使用javac-d main src/main/main.java,则类文件将被放在main/main/main.class中。如何在保持适当的包结构的同时将.class和.java文件保存在单独的目录中?Main.java的包声明是package Main;没有办法使jar与当前目录结构一起工作吗?我想将Main.java文件保存在src/Main/中,将Main.class文件保存在bin中/main@Lifus这是行不通的,因为这对Java根本无效。您需要接受Java的jar文件格式要求包的根目录是
/
,而不是
/bin/
@MarkRotteveel-Huh,那么没有办法将.class和.Java文件保存在单独的目录中吗?我不确定这与您的问题有什么关系。您通常不会在Jar文件中包含源代码。听起来你是在“原地”编译。通常,您编译到一个构建文件夹(例如使用javac-d),然后使用该构建文件夹来创建jar(或者更好:使用Maven或Gradle之类的构建工具来为您完成)。如果我尝试编译到一个构建文件夹,使用javac-d build src/main/main.java,那么结果就是build/main/main.class,如果我尝试将其转换为jar文件,使用jar cfm jar.jar src/META-INF/MANIFEST.mf build/main/*.class,我得到一个带有META-INF/META-INF/MANIFEST.mf build/main/main.class的jar文件,该文件不起作用,因为它必须有main/main.class main.java的包声明是package main;没有办法使jar与当前目录结构一起工作吗?我想将Main.java文件保存在src/Main/中,将Main.class文件保存在bin中/main@Lifus这是行不通的,因为这对Java根本无效。您需要接受Java的jar文件格式要求包的根目录是
/
,而不是
/bin/
@MarkRotteveel-Huh,那么没有办法将.class和.Java文件保存在单独的目录中吗?我不确定这与您的问题有什么关系。您通常不会在Jar文件中包含源代码。听起来你是在“原地”编译。通常,您编译到一个构建文件夹(例如使用javac-d),然后使用该构建文件夹来创建jar(或者更好:使用Maven或Gradle之类的构建工具来为您完成)。如果我尝试编译到一个构建文件夹,使用javac-d build src/main/main.java,那么结果就是build/main/main.class,如果我尝试将其转换为jar文件,使用jar-cfm jar.jar src/META-INF/MANIFEST.mf build/main/*.class,我只剩下一个带有META-INF/META-INF/MANIFEST.mf build/main/main.class的jar文件,该文件无法工作,因为它必须有main/main.class