发生JNI错误,请检查您的安装并在Eclipse x86 Windows 8.1中重试

Jas*_*ekh 38 java mysql eclipse java-native-interface

public class LoginCumReg implements ActionListener,KeyListener {
    private JFrame form;
    private JTextField txtunm;
    private JTextField txtnm;
    private JTextField txteml;
    private JButton cmdcreate;
    private JPasswordField txtpass;
    private JPasswordField txtpassreg;
    private JButton cmdok;
    private JLabel lblunm;
    private JLabel lblpass;
    private JLabel lbleml;
    private JLabel lblpassreg;
    private JLabel lblnm;
    private JPanel panel_1;
public LoginCumReg() {
    // construct components
    form = new JFrame("Sign Up");
    form.getContentPane().setFont(
            new Font("Plantagenet Cherokee", Font.BOLD, 18));
    txtunm = new JTextField(5);
    txtunm.addKeyListener(this);
    txtunm.setBounds(637, 55, 100, 25);
    txtnm = new JTextField(5);
    txtnm.setBounds(637, 228, 100, 25);
    txteml = new JTextField(5);
    txteml.setBounds(637, 264, 100, 25);
    cmdcreate = new JButton("Create Account");
    cmdcreate.setBounds(527, 350, 188, 25);
    txtpass = new JPasswordField(5);
    txtpass.setBounds(637, 91, 100, 25);
    txtpassreg = new JPasswordField(5);
    txtpassreg.setBounds(637, 300, 100, 25);
    cmdok = new JButton("OK");
    cmdok.setBounds(527, 139, 100, 25);
    lblunm = new JLabel("UserName");
    lblunm.setBounds(527, 55, 73, 25);
    lblpass = new JLabel("Password");
    lblpass.setBounds(527, 91, 100, 25);
    lbleml = new JLabel("Email ID");
    lbleml.setBounds(527, 264, 100, 25);
    lblpassreg = new JLabel("Password");
    lblpassreg.setBounds(527, 300, 100, 25);
    lblnm = new JLabel("Full Name");
    lblnm.setBounds(527, 228, 100, 25);

    // form.setResizable(false);

    // adjust size and set layout
    form.setPreferredSize(new Dimension(800, 450));

    form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    form.getContentPane().setLayout(null);

    // add components
    form.getContentPane().add(txtunm);
    form.getContentPane().add(txtnm);
    form.getContentPane().add(txteml);
    form.getContentPane().add(cmdcreate);
    form.getContentPane().add(txtpass);
    form.getContentPane().add(txtpassreg);
    form.getContentPane().add(cmdok);
    form.getContentPane().add(lblunm);
    form.getContentPane().add(lblpass);
    form.getContentPane().add(lbleml);
    form.getContentPane().add(lblpassreg);
    form.getContentPane().add(lblnm);

    cmdcreate.setActionCommand("Create Account");
    cmdcreate.addActionListener(this);
    cmdok.setActionCommand("Login");

    JPanel panel = new JPanel();
    panel.setBounds(502, 29, 254, 154);
    panel.setFont(new Font("Palatino Linotype", Font.PLAIN, 14));
    panel.setBorder(new TitledBorder(new EtchedBorder(EtchedBorder.RAISED,
            null, null), "LOGIN", TitledBorder.LEADING, TitledBorder.TOP,
            null, null));
    panel.setBackground(SystemColor.controlHighlight);
    form.getContentPane().add(panel);

    panel_1 = new JPanel();
    panel_1.setBounds(500, 204, 254, 186);
    panel_1.setFont(new Font("Palatino Linotype", Font.PLAIN, 14));
    panel_1.setBorder(new TitledBorder(new EtchedBorder(
            EtchedBorder.RAISED, null, null), "SIGN UP",
            TitledBorder.LEADING, TitledBorder.TOP, null, null));
    panel_1.setBackground(SystemColor.controlHighlight);
    form.getContentPane().add(panel_1);

    JLabel lblNewLabel = new JLabel("New label");
    lblNewLabel.setBounds(91, 139, 286, 101);
    lblNewLabel.setIcon(new ImageIcon(
            "C:\\Users\\JAsh\\Desktop\\Projects\\JAsh.png"));
    form.getContentPane().add(lblNewLabel);

    JPanel panel_2 = new JPanel();
    panel_2.setBounds(77, 118, 315, 145);
    panel_2.setBorder(new EtchedBorder(EtchedBorder.RAISED,
            SystemColor.activeCaptionBorder, SystemColor.menu));
    panel_2.setBackground(SystemColor.controlHighlight);
    form.getContentPane().add(panel_2);
    cmdok.addActionListener(this);

    form.setResizable(false);
    form.pack();
    form.setVisible(true);
    System.out.println("const..");
}

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

@Override
public void actionPerformed(ActionEvent ae) {
    // TODO Auto-generated method stub

    if (ae.getActionCommand().equals("Create Account")) {
        new Registration(txtnm.getText(), txteml.getText(), new String(
                txtpassreg.getPassword()));
        form.setVisible(false);
    }

    if (ae.getActionCommand().equals("Login")) {
        try {
            if (txtunm.getText().equalsIgnoreCase("admin")
                    && new String(txtpass.getPassword()).equals("admin")) {
                form.setVisible(false);
                new Admin();
            } else {
                DataBase db = new DataBase();
                db.connect();
                String sql = "SELECT * FROM LOGIN WHERE USERNAME='"
                        + txtunm.getText() + "'";
                ResultSet rs = db.getDDL(sql);
                boolean found = false;
                while (rs.next()) {
                    if (rs.getString("Password").equals(
                            new String(txtpass.getPassword()))) {
                        found = true;
                        form.setVisible(false);
                        String name = rs.getString("FullName");
                        Session.startSession(txtunm.getText(), name);
                        new FacultyWelcome();
                    }
                }
                if (!found)
                    JOptionPane.showMessageDialog(new JFrame(),
                            "Invalid Credentials");
                db.close();
            }
        } catch (Exception e) {
        }
    }

}

@Override
public void keyPressed(KeyEvent arg0) {
    // TODO Auto-generated method stub
}

@Override
public void keyReleased(KeyEvent arg0) {
    // TODO Auto-generated method stub

}

@Override
public void keyTyped(KeyEvent arg0) {
    // TODO Auto-generated method stub
//  JOptionPane.showMessageDialog(new JFrame(), arg0.getKeyChar()+"-"+arg0.getKeyCode());

}
Run Code Online (Sandbox Code Playgroud)

}

上面的代码完全适用于我朋友的笔记本电脑,并在我的笔记本电脑上抛出此错误.我已经使用Java 7在Eclipse Juno上运行代码了.我还在我的笔记本电脑上测试并运行了很多java程序.这是唯一一个出现这种错误的程序.这是我的最后一年项目,我需要它在我的笔记本电脑上工作,我会很乐意帮助任何人

Nav*_*aei 28

简短回答:右键单击包含main方法的类.单击"运行方式".单击"Java Application".键盘快捷键为:Shift + Alt + XJ(按住Shift和Alt,按X;然后释放Shift和Alt并按下J键).

答案长:说实话,我并不是100%确定为什么会出现这个问题.可能是因为使用了不同的jdk.我遇到了同样的错误.解决方案比我想象的要容易.我习惯使用Ctrl + F11运行我的代码.但是当我把它作为一个java应用程序运行时(我在"简答题"中描述的方式),问题就解决了.我不确定它是否能解决其他人的问题,但值得尝试.:)

  • 您的“简短答案”已帮助。只有我需要写一个新的应用程序名称并选择包含类的主函数。它像魅力一样运作。 (2认同)

小智 9

错误:发生了JNI错误,请检查您的安装并在Eclipse中重试。

解决方案:检查您的软件包名称,因为它可能与Java中的软件包名称冲突。只需更改软件包名称即可解决您的问题。:)

  • 但我应该检查什么? (3认同)

小智 8

在包名开头使用'java'时遇到了类似的问题,例如java.jem.pc

检查你的控制台输出,我收到:线程"main"中的异常java.lang.SecurityException:禁止的包名:java.jem.pc


小智 8

我已经有一段时间这个问题了,但是现在我知道了。

事实证明,Java JDK 12在Java 12 JDK的bin文件夹中同时具有JRE和JDK。(我一直认为JRE和JDK是不同的应用程序,但事实证明情况已经发生了变化)

我的问题是我的计算机上安装了Java JDK 12

同时,我在计算机上安装了Java 8(JRE)。

所以我的电脑变得混乱了。

使用我的命令提示符环境设置来运行Java和Javac命令:

我输入了以下命令:

java -version  

Run Code Online (Sandbox Code Playgroud)

//这给了我Java 8

之后,我输入:

javac -version
Run Code Online (Sandbox Code Playgroud)

//这给了我Java 12

换句话说,我的程序正在使用Java 12进行编译,而我试图在Java 8上运行。

为了解决该问题,我从计算机上卸载了Java 8 JRE。

返回命令提示符以检查“ java -version”和“ javac -version”是否返回相同的版本号,是的,它返回的是Java 12。

尝试再次重新编译我的程序,然后运行它。有效!!

有效!尤里卡!

  • 您不需要卸载`java 8`,只需在系统上配置您的java版本`sudo update-alternatives --config javac; sudo update-alternatives --config java ` (3认同)

Dvi*_*act 6

就我而言,问题是由JDK 版本引起的。为了解决这个问题,我建议进入你的 pom 文件并检查<jdk.version>1.7</jdk.version>.

然后在您的 cmd(windows) 或终端(OSX 或 LINUX)中输入:java -version检查 java 版本。

将终端\命令提示符中显示的版本与您在 pom 文件中的版本进行比较。确保它们相同。然后再次运行您的项目。


小智 6

嗨,我在具有 Maven 依赖项的 IntelliJ 中遇到了类似的项目问题。

我解决了它改变依赖范围从提供到编译。

智能

文件>项目结构>模块>依赖>范围(提供编译)


Mig*_*ita 5

您可以先检查控制台以查看实际的错误消息,然后继续查找该错误的答案。

我的控制台显示类 jcommander 的错误 NoClassDefFound。你的错误可能与我的不同。我的错误的原因是类 jcommander 不在我的 M2 存储库中,所以我只需要在我的 pom.xml 中添加该依赖项。您可以检查所有类依赖项是否都已声明并添加到您当前的配置和项目构建中。

NoClassDefFoundError


c0d*_*der 5

通过以下命令从命令行运行jar:

C:\folder\where\jar\stored>java -jar JarName.jar
Run Code Online (Sandbox Code Playgroud)

我得到的信息使问题更加明确:

main / Main已由Java Runtime的最新版本进行编译

在此处输入图片说明

在这种情况下,jar的编译版本比jre支持的版本新。

  • @Atnas我改变了编译器jdk合规性。在 Eclipse 中,其位于项目属性 &gt; java 编译器 &gt; jdk 合规性下 (2认同)

小智 5

我解决了它改变我的“编译器合规性级别”。在日食中:

窗口 -> 首选项 -> Java -> 编译器