我写了一个完全适用于我的笔记本电脑的程序,但我真的希望它可以在我拥有的服务器上运行.使用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)
希望能帮助到你!
试试看:
java -classpath "$CLASSPATH:nameOfFile.jar:lib/*" path.to.your.MainClass
Run Code Online (Sandbox Code Playgroud)
这样做是将类路径设置为$CLASSPATH,加上nameOfFile.jar 的值,加上所有.jar文件lib/.
您需要使用设置类路径
下面的代码适用于 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)