Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.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 - Fatal编程技术网

Java 程序在编译器(Eclipse)中运行良好,但当我导出它时,它不会';行不通

Java 程序在编译器(Eclipse)中运行良好,但当我导出它时,它不会';行不通,java,eclipse,Java,Eclipse,这是我的代码。在我将其导出为可运行的JAR文件之前,它工作得非常好。我使用Eclipse作为IDE,我使用的是Windows10。当我右键单击项目并单击导出时,我选择Runnable JAR file作为一个选项。之后,我选择了正确的主类和保存文件的位置。问题就从这里开始:当我选择库处理选项时,我有3个选项 将所需库提取到生成的JAR中 将所需库打包到生成的JAR中 将所需库复制到生成的JAR旁边的子文件夹中 因此,当我选择选项1)时,这是我得到的错误消息:错误:发生了JNI错误,请检查您的安装

这是我的代码。在我将其导出为可运行的JAR文件之前,它工作得非常好。我使用Eclipse作为IDE,我使用的是Windows10。当我右键单击项目并单击导出时,我选择Runnable JAR file作为一个选项。之后,我选择了正确的主类和保存文件的位置。问题就从这里开始:当我选择库处理选项时,我有3个选项

  • 将所需库提取到生成的JAR中
  • 将所需库打包到生成的JAR中
  • 将所需库复制到生成的JAR旁边的子文件夹中
  • 因此,当我选择选项1)时,这是我得到的错误消息:错误:发生了JNI错误,请检查您的安装并重试,,然后是:发生了Java异常。之后,它就关闭了

    当我选择第二个和第三个选项时,我在运行它时没有收到任何错误消息,但是我的光标看起来好像在加载某个东西1秒钟,就是这样

    请注意,此代码在Eclipse中工作,只有在导出程序时才会出现问题。

    此外,我尝试导出的每个程序都会出现这种情况。


    因此,如果你对这个问题有任何建议或解决方案,请告诉我。提前感谢。

    您的示例没有必需的库。听起来您的操作系统设置不足以正确处理jar文件。如果使用终端/命令提示符并运行java-jar your-jar-file.jar会发生什么情况出现此消息:错误:发生JNI错误,请检查您的安装并重试线程“main”java.lang.UnsupportedClassVersionError:main已由java运行时的较新版本(类文件版本59.0)编译,这个版本的Java运行时只识别高达52.0的类文件版本。听起来您的操作系统指向的是过时的JDK。运行
    java-version
    时会得到什么?eclipse使用的是什么JDK?噢,非常感谢,当我读到这条消息时,我用谷歌搜索了一下,得到了它。非常感谢你!
    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    
    public class Main {
        
        public static void main(String args[]) {
            
            JFrame frame = new JFrame("Frame");
            JPanel panel = new JPanel();
            JButton button = new JButton("Button");
            
            panel.setBounds(0,0,300,300);
            panel.setLayout(null);
            button.setBounds(120,140,60,20);
            
            button.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    panel.setBackground(Color.GREEN);
                }   
            });
            
            frame.setSize(300,300);
            frame.setLocationRelativeTo(null);
            frame.setResizable(false);
            panel.add(button);
            frame.add(panel);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        }
    }