Java 发生JNI错误,请检查您的安装并在Eclipse x86 Windows 8.1中重试
上面的代码在我朋友的笔记本电脑上运行良好,并在我的笔记本电脑上抛出此错误。我已经使用Java7在EclipseJuno上运行了代码。我也在我的笔记本电脑上测试和运行了很多java程序,都运行得很好。这是唯一一个出现这种错误的程序。这是我最后一年的项目,我需要它在我的笔记本电脑上工作,我将非常感谢任何帮助我的人。简短回答:右键单击包含主要方法的类。点击“运行方式”。点击“Java应用程序”。键盘快捷键为:Shift+Alt+X J(按住Shift和Alt的同时,按X;然后松开Shift和Alt并按J) 详细回答:老实说,我不是100%确定为什么会出现这个问题。这可能是因为使用了不同的jdk。Java 发生JNI错误,请检查您的安装并在Eclipse x86 Windows 8.1中重试,java,mysql,eclipse,java-native-interface,Java,Mysql,Eclipse,Java Native Interface,上面的代码在我朋友的笔记本电脑上运行良好,并在我的笔记本电脑上抛出此错误。我已经使用Java7在EclipseJuno上运行了代码。我也在我的笔记本电脑上测试和运行了很多java程序,都运行得很好。这是唯一一个出现这种错误的程序。这是我最后一年的项目,我需要它在我的笔记本电脑上工作,我将非常感谢任何帮助我的人。简短回答:右键单击包含主要方法的类。点击“运行方式”。点击“Java应用程序”。键盘快捷键为:Shift+Alt+X J(按住Shift和Alt的同时,按X;然后松开Shift和Alt并按
我也面临同样的错误。解决办法比我想象的要容易。我习惯于使用Ctrl+F11来运行代码。但当我将其作为java应用程序运行时(我在“简短回答”中描述的方式),问题就解决了。我不确定它是否也能解决其他人的问题,但值得一试。:) 我遇到了类似的问题,然后在包名中找到了解决方案。
我将包名保留为java.basics。在控制台中,我得到了一个提示,因为它清楚地显示了禁止使用的包名。因此,我更改了包名,它起了作用。在包名开头使用“java”时,我遇到了类似的问题,例如
java.jem.pc
检查您的控制台输出,我收到:
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());
}
}
您可以先检查控制台以查看实际的错误消息,然后继续查找该错误的答案 我的控制台显示类jcommander的NoClassDefFound错误。 你的错误可能和我的不同。我出错的原因是类jcommander不在我的M2存储库中,所以我只需在pom.xml中添加该依赖项。您可以检查是否在当前配置和项目构建中声明并添加了所有类依赖项
我也面临同样的问题。通过查看控制台上的 java.lang.SecurityException问题 解决方案是: 检查项目的包名称
希望你的问题能得到解决。如果没有,请打印控制台跟踪以跟踪根本原因。如果JDK版本不同,则可能会发生这种情况 用maven试试这个:
Exception in thread "main" java.lang.SecurityException: Prohibited package name: java.jem.pc
1.8
在build->plugins下:
<properties>
<jdk.version>1.8</jdk.version>
</properties>
org.apache.maven.plugins
maven编译器插件
2.3.2
${jdk.version}
${jdk.version}
检查您的控制台。它说java.lang.SecurityException问题。更改您的“包名”。我将包名从“java.assessment”改为“assessment”,它对我很有用。
如果有人知道根本原因,请告诉我。编辑“.classpath”并包含下面的标签
这可以解决您的问题。错误:发生JNI错误,请检查您的安装并在Eclipse中重试
解决方案:检查包名,因为它可能与java中的包名冲突。只需更改程序包名称即可解决问题。:) 在我的例子中,问题是由JDK版本引起的。为了解决这个问题,我建议进入pom文件并检查
1.7.
然后在cmd(windows)或终端(OSX或LINUX)中键入:java-version检查java版本
将terminal\命令提示符中显示的版本与pom文件中的版本进行比较。确保它们是相同的。然后再次运行您的项目。我希望这对其他人有所帮助。几年前,我在一个项目中工作时遇到了这种情况,几天前,一个新项目的工作开始失败。我找到了这篇文章,试图回忆我在项目中修改了什么,然后我想起我修改了maven pom并删除了maven jar插件的条目。当您构建一个jar,其目的是使其成为可执行文件时,您需要将其包括在内,以便将某些条目写入清单中。我打开了旧的项目,复制了那个条目(对项目名称做了一些修改),它成功了 我认为发生这种情况是因为您的类的名称与JDK中另一个类的名称相同。通过选择类所在的包,帮助eclipse确定要运行的包。转到运行配置选择项目和主类 当您按下搜索按钮选择主类时,您将找到名称相同但包不同的选项,请选择您的类。可能的解决方案 如果这些解决方案都不适合你,那么试试这个。。。我最终通过删除工作区文件夹中的两个文件夹“.metadata”&.recommenders”来工作。您可以通过单击Eclipse应用程序工具栏中的“文件”>“切换工作区”>“其他”来找到您的工作区文件夹路径
现在我是一个彻头彻尾的傻瓜,在圣何塞州立大学攻读SE学位。所以我只是在分享对我有用的东西,而不知道确切的原因。我不知道有什么害处或头痛,甚至如果上述两个文件夹都需要删除。但最终,它对我起了作用,而且应用程序似乎只是重新创建了这些文件夹的新版本。我的问题来自尝试从我的项目中禁用Maven特性,然后删除
pom.xml
文件。这很糟糕,非常糟糕,不要这样做。如果您这样做了,请将其更改回Maven项目,希望您可以恢复旧的pom.xml
文件或创建一个新文件。我一做到这一点,它就又起作用了
编辑:我最近再次遇到这个问题,这一次是因为我有一个重复的库
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<artifactId>aws-encryption-sdk-java</artifactId>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.packagename.MainClassName</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<configuration>
<createDependencyReducedPom>false</createDependencyReducedPom>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
C:\folder\where\jar\stored>java -jar JarName.jar
java -version
javac -version