Java中的类路径到底是什么?

2022-09-02 13:20:00

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

java -jar nameOfFile.jar

我收到错误

java.lang.NoClassDefFoundError: org/....

我一直在做一些阅读,从我收集到的信息来看,我需要指定我使用的库的位置。好吧,它们位于一个名为lib的子文件夹中。

问题:

那么我需要做些什么才能运行我的罐子呢?


答案 1

CLASSPATH是一个环境变量,它帮助我们教育Java虚拟机,它将从哪里开始搜索.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 

在Linux中,我们可以做到

export CLASSPATH=$CLASSPATH:[path of the jar]

希望它有帮助!


答案 2

试试看:

java -classpath "$CLASSPATH:nameOfFile.jar:lib/*" path.to.your.MainClass

这样做的作用是将类路径设置为 值,加上 nameOfFile.jar,再加上 中的所有文件。$CLASSPATH.jarlib/


推荐