java.lang.ClassNotFoundException:
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:80)
at com.exe4j.runtime.WinLauncher.main(WinLauncher.java:94)
上面的是执行exe的错误代码
import javax.swing.*;
import java.awt.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.text.DecimalFormat;
import java.util.*;
import java.util.Timer;
import src.Student;
public class Demo2 extends JFrame {
private final ImageIcon start = new ImageIcon("F:\\随机点名3.0\\src\\sourses\\开始.png");
private final ImageIcon end = new ImageIcon("F:\\随机点名3.0\\src\\sourses\\停止.png");
private final JButton jButton_start = new JButton(start);
private final JButton jButton_end = new JButton(end);
private final JButton jButton_test = new JButton("test");
private ArrayList<String> names;
// private JPanel jPanel;
private boolean isStart;
private String randomName;
public Demo2() throws HeadlessException, FileNotFoundException {
init();
initNames();
}
public void init() {
//创建两个容器
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
//创建空容器用于占位
JPanel jpNull = new JPanel();
JLabel jLabelName = new JLabel();
//开始和结束按钮的事件监听
jButton_start.addActionListener(e -> {
if (!isStart) {
isStart = true;
random_name(jLabelName);
}
});
jButton_end.addActionListener(e -> {
if (isStart) {
isStart = false;
} else {
jLabelName.setText(null);
}
});
jButton_test.addActionListener(e -> {
JFrame jFrame_test = new JFrame();
jFrame_test.setLayout(new GridLayout(2,1));
//登录用组件
JPanel jPanel = new JPanel();
JPanel jPanel1 = new JPanel();
Font font = new Font("微软雅黑", Font.PLAIN, 20);
JLabel jLabel =new JLabel("密 码:");
jLabel.setFont(font);
JPasswordField jPasswordField = new JPasswordField(15);
// jPasswordField.setText("请输入密码");
jPasswordField.setForeground(Color.black);
JButton jButton = new JButton("继续");
//将所有组件加入面板
jPanel.add(jLabel);
jPanel.add(jPasswordField);
jPanel1.add(jButton);
jFrame_test.add(jPanel);
// jFrame_test.add(jButton);
jFrame_test.add(jPanel1);
//初始化窗口
jFrame_test.setSize(300, 200);
jFrame_test.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
jFrame_test.setResizable(false);
jFrame_test.setTitle("输入密码开始测试");
jFrame_test.setLocationRelativeTo(null);
jFrame_test.setVisible(true);
jButton.addActionListener(e1 -> {
String password = new String(jPasswordField.getPassword());
// System.out.println(password);
if (password.equals("20041214")){
getRate();
jFrame_test.dispose();
}else{
JFrame jFrame_fail = new JFrame();
jFrame_fail.setSize(300,200);
JLabel jLabel1 = new JLabel("密码错误");
jLabel.setForeground(Color.RED);
jFrame_fail.add(jLabel1);
jFrame_fail.setLocationRelativeTo(null);
jFrame_fail.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
jFrame_fail.setResizable(false);
jFrame_fail.setVisible(true);
}
});
});
setLayout(new GridLayout(3, 1));
JLabel jLabel = new JLabel("被点名的是:");
Font font = new Font("微软雅黑", Font.PLAIN, 20);
Font font1 = new Font("微软雅黑", Font.BOLD, 100);
jLabel.setFont(font);
jLabelName.setFont(font1);
//设置按钮
jButton_start.setSize(200, 200);
jButton_end.setSize(200, 200);
// jp2.setSize(300,200);
//添加按钮
jp1.add(jLabel);
jp1.add(jLabelName);
jp2.add(jButton_start);
jp2.add(jButton_end);
jp3.add(jButton_test);
jp3.setSize(600, 100);
this.add(jp1);
this.add(jp2);
this.add(jp3);
//设置窗口
setLocationRelativeTo(null);
setSize(600, 685);
// setLocation(300, 200);
setResizable(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
//初始化人名单
public void initNames() throws FileNotFoundException {
names = new ArrayList<>();
String path = "F:\\snakeGame\\src\\com\\test\\人名单.txt";
InputStream inputStream = new FileInputStream(path);
Scanner scanner = new Scanner(inputStream);
while (scanner.hasNext()) {
String name = scanner.nextLine();
// System.out.println(name);
if (!name.equals("赵斯琪") && !name.equals("常力争")) {
names.add(name);
}
}
}
public void random_name(JLabel jLabel) {
Random random = new Random();
Timer timer = new Timer();
//循环点名
TimerTask timerTask = new TimerTask() {
@Override
public void run() {
int index = random.nextInt(names.size());
randomName = names.get(index);
jLabel.setText(randomName);
if (!isStart) {
timer.cancel();
}
}
};
timer.scheduleAtFixedRate(timerTask, 0, 85);
}
//获得概率
public void getRate() {
//创建学生列表
ArrayList<Student> students = new ArrayList<>();
//进行循环,获得概率
for (int i = 0; i < 1000; i++) {
String name = this.randomName();
System.out.println(this.randomName() + "\t" + "第" + (i + 1) + "次");
addStudent(students, name);
}
DecimalFormat decimalFormat = new DecimalFormat(".00");
double sum = 0;
for (Student student : students) {
System.out.println(student.getName() + ":" + student.getCount() + "次");
double x = (double) student.getCount() / 1000 * 100;
sum += x;
String y = decimalFormat.format(x);
System.out.println("概率:" + y + "%");
}
sum = sum / students.size();
String sumS = decimalFormat.format(sum);
System.out.println("共" + students.size() + "人");
System.out.println("平均概率:" + sumS + "%");
}
private void addStudent(ArrayList<Student> students, String name) {
// if (name.equals("赵斯琪") || name.equals("常力争")) {
// return;
// }
//如果列表内没有数据,将获取到的第一个数据加入
src.Student student = new Student(name);
if (students.size() == 0) {
student.setCount(1);
students.add(student);
return;
}
//遍历数组,如果传入的名字已经在列表内,将该学生出现次数加一
for (int i = 0; i < students.size(); i++) {
if (student.equals(students.get(i))) {
int count = students.get(i).getCount();
students.get(i).setCount(count + 1);
return;
}
}
//如果传入的名字不存在,加入一个新学生
student.setCount(1);
students.add(student);
}
private String randomName() {
Random random = new Random();
int index = random.nextInt(names.size());
return names.get(index);
}
public static void main(String[] args) throws FileNotFoundException {
Demo2 demo2 = new Demo2();
}
}
上面是代码
是不是你的JDK环境没有配置呢,主要是path,classpath,在系统环境变量里面看看。
类不存在,围绕这个找一下原因
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632