尝试编译代码 - 无法找到或加载主类 a

Posted

技术标签:

【中文标题】尝试编译代码 - 无法找到或加载主类 a【英文标题】:Trying to compile code - Could not find or load main class a 【发布时间】:2016-05-28 12:10:22 【问题描述】:

所以我查阅了很多关于如何编译代码的教程。我试图跟随他们所有人。但我不断收到这个错误。这是我的代码:

package ytho;

public class a 
    public static void main(String[] args)
    System.out.println("ytho");
    



这是我在 manifest.txt 中添加的内容:

Main-Class: a

我也尝试将其设置为Main-Class: .aMain-Class: ytho.a,但无济于事。 很抱歉,这是重复的,但这里的所有其他教程都对我不起作用。所以,我决定最后问问自己。帮助将不胜感激。如果您需要更多信息,请告诉我,但我可能会迟到回复。

【问题讨论】:

哦,是的,只是忘了把它放在问题中。 您究竟是如何创建 JAR 的? 您是使用 IDE 还是命令行来创建 JAR 文件?如果使用命令行?确切的命令是什么?当你这样做时,你在哪个目录中?你项目的目录结构是什么? 我正在使用 cmd 来创建它。我将 .java 文件转换为带有 javac -d ../classes a.java 的 .class 文件,然后将其放入包含 Main-Class: a 的 manifest.txt 文件夹中。我进入目录并运行命令jar -cvmf manifest.txt ytho.jar a.class。这会将其转换为 jar 文件,但是当我尝试使用 java -jar ytho.jar 运行它时,我收到错误 Error: Could not find or load main class a 【参考方案1】:

让我们一步一步来:

    用你的包名创建一个文件夹 将 a 类重命名为 A,因为 java 在第一个字母上使用大写字母(这是风格) 编译你的文件javac ytho/A.java 创建罐子 jar cvfm MyJarName.jar MANIFEST.MF *

这是我的目录的样子

.
├── MANIFEST.MF
├── MyJarName.jar
└── ytho
    ├── A.class
    └── A.java

这是Manifest的内容

Main-Class: ytho.A

然后像这样运行它:

$: java -jar MyJarName.jar 

打印出来的

ytho

【讨论】:

【参考方案2】:

在您的清单中,您的类名中缺少包:

Main-Class: ytho.a

查看此链接了解更多详情:https://docs.oracle.com/javase/tutorial/deployment/jar/appman.html

另外,你不应该用全小写(或单个字符)来命名你的类。称它为有意义的东西,比如 JarTest.class 或其他东西

【讨论】:

我试过Main-Class: ytho.a,但没有成功。

以上是关于尝试编译代码 - 无法找到或加载主类 a的主要内容,如果未能解决你的问题,请参考以下文章

java中找不到主类是啥问题

java控制台编译通过,运行出现找不到或无法加载主类的情况

java无法找到或加载主类是怎么回事?

MAC 找不到或无法加载主类怎么解决

错误:无法找到或加载主类 com.example.pdfone.MainActivity

错误:找不到或无法加载主类 Test.java