尝试编译代码 - 无法找到或加载主类 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: .a
和Main-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的主要内容,如果未能解决你的问题,请参考以下文章