java - 在 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();
}
}
}
解决方案
您可以使用以下命令运行您的 java 类文件:
java -cp Path:path/to/mysql.jar package1.package2.Server
First Path 指的是Server.class 的绝对地址。
推荐阅读
- javascript - 如何使用颜色选择器更改所选文本的颜色
- wordpress - 让我的 wordpress 主题支持多语言
- python - SHAP 异常:TreeExplainer 中的可加性检查失败
- azure - 如何在 azure 中将现有资源转换为 terraform
- amazon-web-services - AWS S3 java SDK:无法创建存储桶
- c - c语言中使用指针的数组操作
- c++ - 我从哪里获得 Windows SAPI .pdb 文件?
- android - Android中对象的通用变量
- python-3.x - 没有得到 Python pyAudio 模块的响应
- shell - Jenkins Pipeline:使用 shell 命令安排每个阶段的任何策略