首页 > 解决方案 > 在 intelliJ 中运行但不在 cmd 中运行的 java 应用程序

问题描述

我开发了一个在 intelliJ 上完美运行的 java 应用程序,但是当我想在终端中使用java命令运行它时,它会抛出一个错误:

java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at Server.main(Server.java:9)

这是我的主要代码,它在 try 子句后的第一行导致异常:

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

@SuppressWarnings("ALL")
public class Server {
    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            DBClass.createDB();
            DBClass.purgeHubs();
            ServerSocket serverSocket = new ServerSocket(9898);
            System.out.println("Server Running!");
            while (true) {
                Socket socket = serverSocket.accept();
                socket.setSoTimeout(20*1000); // The Connected Socket Must Send Anything Within 20 Seconds Otherwise it will be closed.
                Thread t = new Thread(() -> ClientManager.getInstance().run(socket));
                t.start();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

顺便说一句,我还在项目中添加了 mysql jar 文件: 在此处输入图像描述

标签: javamysql

解决方案


您可以使用以下命令运行您的 java 类文件:

java -cp Path:path/to/mysql.jar package1.package2.Server

First Path 指的是Server.class 的绝对地址。


推荐阅读