Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 错误:只有在eclipse外部运行时才能找到或加载主类_Java_Eclipse_Mainclass - Fatal编程技术网

Java 错误:只有在eclipse外部运行时才能找到或加载主类

Java 错误:只有在eclipse外部运行时才能找到或加载主类,java,eclipse,mainclass,Java,Eclipse,Mainclass,我制作了一个Java应用程序,它在eclipse的内部运行良好 问题是,当我将其导出为jar文件,然后尝试使用java“2Dwars 2.0.jar” 它显示错误:无法找到或加载主类2Dwars 2.0.jar 我搜索过谷歌,很多人都有类似的问题,但没有一个类似的解决方案 我的主要课程如下: public class MainClass extends JFrame implements Controll.keyPressEvent { static Render render;

我制作了一个Java应用程序,它在eclipse的内部运行良好 问题是,当我将其导出为jar文件,然后尝试使用
java“2Dwars 2.0.jar”

它显示
错误:无法找到或加载主类2Dwars 2.0.jar

我搜索过谷歌,很多人都有类似的问题,但没有一个类似的解决方案

我的主要课程如下:

public class MainClass extends JFrame implements Controll.keyPressEvent
{

    static Render render;
    public init in;

    public MainClass()
    {
        new Options();

        setUndecorated(true);
        Options.setBoolean("Draw chunks", false);
        System.out.println("Test");

        add(new Render(new Controll()));

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(895, 675);

        setLocationRelativeTo(null);
        setTitle("2D wars");
        setResizable(false);
        setVisible(true);

        System.out.println("Adding render");


        System.out.println("Loaded Options.");
        System.out.println("added render");
        init in=new init();

        Controll.addListener(Controll.Key.ESC, this);

        new Sounds();   
    }

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

    }

    @Override
    public void sendKeyPressEvent(KeyEvent e)
    {
        if(e.getKeyCode()==Controll.Key.ESC.getKeyCode())
        {
            System.exit(1);
        }
    }

}
系统规格:

Windows vista 32 bit.
Jre 1.7 32 bit
JDk 5,6,7.

EDIT这个问题可以通过导出为可运行并将-jar添加到命令参数中来解决,出于某种原因,必须将jar导出为可运行jar才能找到主类。

要将其作为jar文件运行,需要
-jar
选项。比如:

java -jar "2Dwars 2.0.jar"

(为了简单起见,我建议使用一个没有空格的文件名。)

Ty,这是可行的,但我使用cmd控制台是因为将其导出为可运行的不起作用,这是为什么?更详细地说,当我将其导出为可运行的jar运行时,它不会创建新进程。@user2104648:我不明白你的意思。导出只会创建一个jar文件,运行该jar文件肯定会创建一个新进程。这可能行不通,但那是另一回事。