【问题标题】:Why can't be Java Swing code run in Windows command line?为什么不能在 Windows 命令行中运行 Java Swing 代码?
【发布时间】:2021-05-23 11:22:34
【问题描述】:

这是我尝试从命令行运行的 Java:

package my;

import javax.swing.*;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class Login extends JFrame{
    JLabel l1,l2,l3;
    JTextField t1;
    JPasswordField t2;
    JButton b1;
    Login(){
        Font f=new Font("Arial",Font.BOLD,24);
        l1=new JLabel("my.Login Page");
        l1.setFont(f);
        l2=new JLabel("UserName");
        t1=new JTextField();
        l3=new JLabel("Password");
        t2=new JPasswordField();
        b1=new JButton("my.Login");
        l1.setBounds(70,40,200,40);
        l2.setBounds(70,100,100,20);
        t1.setBounds(70,120,200,30); 
        l3.setBounds(70,170,100,20);
        t2.setBounds(70,190,200,30);
        b1.setBounds(170,240,100,30);
        add(l1);
        add(l2);
        add(t1);
        add(l3);
        add(t2);
        add(b1);
        setLayout(null);
        setVisible(true);
        setSize(400,400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        b1.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ae){
                System.out.println(t1.getText());
                System.out.println(String.valueOf(t2.getPassword()));
            }
        });
    }
    public static void main(String[] args){
        Login login=new Login();
    }
}

使用以下命令:

javac my\Login.java

java my.Login

之前我在 IntellIJ 中编写 Java 代码时甚至可以在 IDE 和命令行中运行它。但是,现在我只能在 IntellIJ 中运行 Swing Java 代码。

当我尝试在命令行中运行它时,我得到以下信息:

Error: Could not find or load main class my.Login

是否有任何模式可以从命令行运行摇摆代码?当我尝试在命令行中运行此代码时,为什么会出现错误? 我的计算机中有 Java 8,Java 已添加到 PATH。

【问题讨论】:

  • my 目录是否包含Login.class
  • 是的。它在这个包里。
  • 检查您是否将 env var CLASSPATH 设置为一些不合适的值,如果是,请修复它,或显式覆盖它:java -cp . my.Login
  • 添加-cp=.有帮助吗?
  • 不确定问题的症结所在,但代码上有一些问题。 1) 使用JPasswordField 的好电话! 2) 但不要扩展或使用JFrame 进行登录。模态 JDialogJOptionPane 效果更好。只需为登录创建(不要扩展)JPanel 并将其放在顶级窗口(TLW)中。 3) 在顶部看到的标签作为 TLW 的标题会更好。 4) Java GUI 必须在不同的操作系统、屏幕尺寸、屏幕分辨率等上使用不同区域设置的不同 PLAF。 ..

标签: java swing cmd command-line java-8


【解决方案1】:

问题在于代码行:

package my;

运行程序时,您可能没有指定包根目录的文件路径。假设你的包的文件路径是:\folder\my\Login.java,在运行编译和执行命令之前,你需要在终端中将目录更改为\folder

【讨论】:

    猜你喜欢
    • 2020-06-04
    • 2010-10-14
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多