Java 由于外部库,无法在终端中编译
Java can't compile in terminal because of external libraries
我正在 Ubuntu 22.04 尝试 运行 我在终端中的代码。
该程序在 VScode 中运行没有问题,在 运行 多个实例中也是如此。
该程序由六个 class 个文件组成。
当我尝试使用终端 运行 时出现问题。编译 java 文件时
javac
它在我使用外部库的地方显示错误。
如果我在终端中使用 VScode 和 运行 编译它 class 文件,我会收到以下错误 java.lang.ClassNotFoundException
这给我带来了问题,因为我还应该将程序 dockerize 化。
这通常表示您编译程序所用的 class 路径不包含库的正确路径。假设您的库是 jar 文件,您的 javac
命令应该如下所示:
javac -cp libs/lib1.jar:libs/lib2.jar srcs/*.java
其中 libs/
是您的库的相对路径,srcs/
是您自己的 java 文件的相对路径。
并且当您 运行 程序时,请确保您的 class 路径包括库的位置和 class 文件的位置(在本例中为当前目录):
java -cp .:libs/lib1.jar:libs/lib2.jar <MainClass>
您可以在 setting.json
文件 "java.project.outputPath": "bin"
中添加以下代码,
这将是 .class
VS Code 在 bin
文件夹中生成 .class
文件时 运行 Java 代码。
用cd
命令进入文件目录后可以使用java命令
我正在 Ubuntu 22.04 尝试 运行 我在终端中的代码。 该程序在 VScode 中运行没有问题,在 运行 多个实例中也是如此。 该程序由六个 class 个文件组成。
当我尝试使用终端 运行 时出现问题。编译 java 文件时
javac
它在我使用外部库的地方显示错误。
如果我在终端中使用 VScode 和 运行 编译它 class 文件,我会收到以下错误 java.lang.ClassNotFoundException
这给我带来了问题,因为我还应该将程序 dockerize 化。
这通常表示您编译程序所用的 class 路径不包含库的正确路径。假设您的库是 jar 文件,您的 javac
命令应该如下所示:
javac -cp libs/lib1.jar:libs/lib2.jar srcs/*.java
其中 libs/
是您的库的相对路径,srcs/
是您自己的 java 文件的相对路径。
并且当您 运行 程序时,请确保您的 class 路径包括库的位置和 class 文件的位置(在本例中为当前目录):
java -cp .:libs/lib1.jar:libs/lib2.jar <MainClass>
您可以在 setting.json
文件 "java.project.outputPath": "bin"
中添加以下代码,
这将是 .class
VS Code 在 bin
文件夹中生成 .class
文件时 运行 Java 代码。
用cd
命令进入文件目录后可以使用java命令