执行JAR文件时出错

时间:2012-04-03 16:24:38

标签: java jar executable-jar

我一直在学习JAR文件,并希望自己创建并运行一个。我执行了以下步骤:

  1. 使用“source”子文件夹和“classes”子文件夹
  2. 创建了一个项目文件夹
  3. 我写了两个源文件,一个用main方法创建另一个类的实例,并在其中运行一个简单的方法。
  4. 将这些编译为'classes'子文件夹。我查看他们是否会跑。他们做了
  5. 我创建了一个manifest.txt文件并填入Main-Class:xxxx并点击返回键。我将它保存在sources子文件夹中
  6. 通过编写

    在classes子文件夹中创建一个jar文件

    jar -cvmf manifest.txt zzz.jar * .class

  7. 尝试输入

    来执行jar文件

    java -jar zzz.jar

  8. 这会产生ClassNotFound异常。如果我尝试通过在Windows中双击它来执行jar我得到一个错误框说“无法找到主类xxxx”

    我已经仔细检查了清单文件中类的拼写,这是正确的。

    可能很重要:我必须使用java -cp编译我的程序。 xyz因为我的类路径存在问题。这是否意味着我还需要以不同的方式执行jar?我试过了    java -cp。 -jar zzz.jar 但结果却出现了同样的例外。

    编辑:我最终从头开始,现在它运行(使用基本的-jar zzz.jar命令)。令人沮丧的是,我不知道我做错了什么,但很高兴它正在发挥作用!

2 个答案:

答案 0 :(得分:1)

您可能必须提供要在类路径之后执行的.class文件的完整路径。即java -cp xxx.jar classes.mainProgram.class。其中classes是包含类文件的文件夹的名称。

答案 1 :(得分:1)

不应该编号5.在类子文件夹中运行,所有类文件都在哪里?如果你的类在包中,它们应该是,你可能想要使用*而不是* .class ..?

要检查jar文件包含的内容,您可以运行:

jar tf zzz.jar