java中的类路径究竟是什么?

use*_*778 12 java classpath

我写了一个完全适用于我的笔记本电脑的程序,但我真的希望它可以在我拥有的服务器上运行.使用NetBeans,我清理并构建了项目.我在我的服务器上复制了文件夹dist的内容,但似乎无法使用命令开始工作

java -jar nameOfFile.jar

我收到了错误

java.lang.NoClassDefFoundError: org/....
Run Code Online (Sandbox Code Playgroud)

我一直在做一些阅读,从我收集到的是,我需要几乎指定我使用的库所在的位置.他们位于一个名为lib的子文件夹中.

题:

那么为了能够运行我的jar,我需要做什么?

小智 8

CLASSPATH是一个环境变量,它可以帮助我们从Java Virtual Machine开始搜索.class文件.

我们应该将包层次结构的根存储在CLASSPATH环境变量中.

如果在我们的项目中添加或使用jar库,我们应该将jar文件的位置放在CLASSPATH环境变量中.

示例:如果我们在java项目中使用jdbc mysql jar文件,我们必须更新CLASSPATH环境变量中mysql jar文件的位置.如果我们的mysql.jar在c:\ driver\mysql.jar中

我们可以在Windows中通过DOS设置类路径

set CLASSPATH=%CLASSPATH%;c:\driver\mysql.jar 
Run Code Online (Sandbox Code Playgroud)

在Linux中我们可以做到

export CLASSPATH=$CLASSPATH:[path of the jar]
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!


Flo*_*yle 6

试试看:

java -classpath "$CLASSPATH:nameOfFile.jar:lib/*" path.to.your.MainClass
Run Code Online (Sandbox Code Playgroud)

这样做是将类路径设置为$CLASSPATH,加上nameOfFile.jar 的值,加上所有.jar文件lib/.


mad*_*ram 0

您需要使用设置类路径

下面的代码适用于 bash 。这是暂时的

set CLASSPATH=$CLASSPATH=[put the path here for lib]
Run Code Online (Sandbox Code Playgroud)

如果你希望它永久存在,那么你可以在 ~/.bashrc 文件中添加以上行

export CLASSPATH=$CLASSPATH:[put the path here for lib]:.
Run Code Online (Sandbox Code Playgroud)