java - jar 不起作用?

标签 java eclipse error-handling error-detection

我已经创建了一个应用程序(使用Java)并对其设置了密码保护:当我在Eclipse中运行/编译代码时,它可以正常工作,但是当我创建一个jar文件并运行该jar时,它就无法正常工作:它向我展示了初始框架但此后没有任何效果:

最初,当我创建第一个jar时,它可以正常工作,但是当我添加密码重置功能时,它就停止工作:

在回答之前,请记住,代码在编译器(即Eclipse)中可以正常工作,但在转换为jar时无法正常工作。

转换过程:File>Export>Runnable Jar(选择的选项-package required libraries into jar)

在Eclipse中有效的输出-屏幕截图图像here

一个不起作用的(从jar执行)
屏幕截图图像here

与代码相关的代码(考虑声明和初始化的每件事)

public JFrame psFrame=new JFrame("Password Check");
    private JPasswordField psField;
        private static int  tries=5;
    static boolean condition=false;
    private String Check,password;


        //////////// CONSTRUCTOR  ///////////
public  MenusAndButtons(){
    super("Explorer");
    extraString=null;
    try {passwordSetter();}catch (FileNotFoundException e){e.printStackTrace();}
    paswardCheck();

}


public synchronized  void  paswardCheck(){


Check=null;
psFrame.setSize(400, 120);
psFrame.setLocation(480, 300);

psField=new JPasswordField("",30); 
psField.addActionListener(new ActionListener(){

    @Override
    public void actionPerformed(ActionEvent e) {

        if(e.getSource()==psField){ 
            Check=e.getActionCommand();

    if(tries!=1){


                if(Check!=null){


                             if(password.equals(Check)){
                             JOptionPane.showMessageDialog(null, "Welcome to Explorer ", "Welcome", JOptionPane.INFORMATION_MESSAGE);
                             condition=true;
                             psFrame.dispose();
                             Mnb();}
                             else{tries--;
                             JOptionPane.showMessageDialog(null,"You Entered a Wrong Password.\nYou are Left With " +tries+ " more Tries.\nPlease complete The Password Check with Correct Password\n", "Warrnning ",JOptionPane.WARNING_MESSAGE);  
                             psField.setText(null); }


                }else{JOptionPane.showMessageDialog(null,"You Entered Nothing in Password Field.\nPlease Enter a Password.","Null value Password Check",JOptionPane.ERROR_MESSAGE); 
                psField.setText(null);}


    }else{JOptionPane.showMessageDialog(null,"You Entered a Wrong Password 5 Times.\nExplorer is Quiting Now.","Password Check Failed ",JOptionPane.ERROR_MESSAGE); 
    psFrame.dispose();
    System.exit(0);}


    }  

    }});
psFrame.setLayout(new FlowLayout());
psFrame.add(new JLabel("Enter Password"));
psFrame.add(psField);
psFrame.setResizable(false);
psFrame.setVisible(true);


}




public void passwordSetter() throws FileNotFoundException{

    Scanner sc=new Scanner(new File("PasswordContainer.txt"));
    while(sc.hasNext())
        password=sc.nextLine();
    sc.close();

}

public void passwordresetter() throws Exception{


    String old=JOptionPane.showInputDialog(null,"Please Enter current Password","Current Password Check",JOptionPane.CANCEL_OPTION);
    if(old.equals(password)){
    String usererntry=JOptionPane.showInputDialog(null, "Please Enter new Password","Reset Password",JOptionPane.CANCEL_OPTION);

    if(usererntry.length()>=6){
    Formatter fp=new Formatter("PasswordContainer.txt");
    fp.format("%s",usererntry);
    fp.close();
    JOptionPane.showMessageDialog(null,"You've successfully Change Your Password","Password Change Conformation",JOptionPane.PLAIN_MESSAGE);
}else{  
    JOptionPane.showMessageDialog(null,"You Password Must Contain at least 6 Characters\nPlease Retype the New Password ");
    passwordresetter();}
        }


    else{JOptionPane.showMessageDialog(null,"You Entered Wrong Password\nPlease Retype the Current Password ");
    passwordresetter();
  }    
}

最佳答案

根据您的描述,听起来您的 jar 没有按照您的想象组装。

如果没有显示面板,则可能缺少支持库。

我将用jar文件打开并浏览内容。无论如何,当您学习Java时,这都是一个有趣的练习(根据个人资料,我注意到您是一名学生)。仔细检查一下jar,并确保它包含支持应用程序所需的所有内容。我的猜测是,无论您使用什么框架,都无法完全复制到jar中。

关于java - jar 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18378802/

相关文章:

node.js - 处理 SailsJS 中的服务器错误

java - 如何在 IntelliJ 数据库工具窗口中查看 cassandra 键空间?

java - Spring Autowiring 参数化泛型类型

c++ - 在eclipse中设置C++开发需要做什么?

android - 如何避免两次启动 Android 应用程序,从 Eclipse 运行到真实设备

android - 添加外部 Jar 库

ios - 如何处理核心数据保存错误?

java - 如何在Android Studio中使用spinner实现SQLite Join以从表中获取id

java - 为什么这不是用 Java 编译的?

python - 无法诊断无效的语法错误(Python)