找不到主要课程

时间:2012-02-10 11:56:23

标签: java jar manifest

好的,所以我一直在尝试制作和执行jar文件。它使用命令“java -jar bybys.jar”运行,但是当我尝试使用enter运行它时,它给出了一个错误“无法找到主类bardejov.Image。程序将退出。”

这是清单:

Manifest-Version: 1.0
Created-By: 1.7.0_02 (Oracle Corporation)
Main-Class: bardejov.Image 

(是的,我使用了新行)

编译jar文件时,我尝试了与目录的每个可能组合,我不知道问题出在哪里。我用过 - C:\Java\2D>jar cfm bybys.jar Manifest.txt bardejov/Image.class bardejov/Board.class bardejov/*jpg

目录是:

META-INF/
META-INF/MANIFEST.MF
bardejov/Image.class
bardejov/Board.class
bardejov/siknius.jpg

主要课程:

package bardejov;

import javax.swing.JFrame;


public class Image extends JFrame {

public Image() {

    add(new Board());

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setSize(477, 530);
    setLocationRelativeTo(null);
    setTitle("Siknius");
    setVisible(true);
    setResizable(false);
}

public static void main(String[] args) {
    new Image();
}
}

如何解决?

更新

我修好了。问题是我没有安装最新的JRE。

4 个答案:

答案 0 :(得分:3)

Manifest.txt中的类名后面有一个额外的空格字符。这是由错误消息追捕:

Could not find the main class bardejov.Image .
                                            ^^

答案 1 :(得分:1)

问题实际上似乎是jar不包含目录bardejov的条目;它仅包含目录中文件的条目。您可以在商家信息中看到这一点;看看有bardejov的条目。创建jar文件时,必须告诉jar包含目录,而不仅仅是其中的文件:

jar cfm bybys.jar Manifest.txt bardejov

答案 2 :(得分:0)

从Java 6开始,您可以使用jar命令指定入口点。以下命令应为您的应用程序创建可执行jar文件:

jar cfe bybys.jar bardejov.Image bardejov/Image.class bardejov/Board.class bardejov/*jpg

您无需编写和添加自定义清单。

资源

<强>更新

以下适用于我的机器:

example/Hello.java创建一个java源文件:

package example;
public class Hello {
  public static void main(String[] args) {
    System.out.println("Hello world!");
  }
}

使用命令编译

javac example/Hello.java

jar with command

jar cfe example.jar example.Hello example/*.class

使用命令执行

java -jar example.jar

输出

Hello world!

<强> UPDATE2

现在看起来像配置问题。代码和jar显然是正确的。

快速修复/ workaroud:直接启动jar,编写一个简短的批处理或shell脚本文件,只执行java -jar ...命令。

答案 3 :(得分:-3)

打开cmd提示符并输入

set JAVA_HOME=c:\PATH\TO\JAVA_DIRECTORY
set CLASSPATH=.;%JAVA_HOME%\bin;%JAVA_HOME%\lib

确保将这些变量包含在PATH环境变量中。

您可以转到控制面板 - &gt;来获取Win7中的环境变量。系统 - &gt;高级系统设置 - &gt;高级标签 - &gt;环境变量。