我写了一个完全适用于我的笔记本电脑的程序,但我真的希望它可以在我拥有的服务器上运行。 使用NetBeans,我已经清理并建造了这个项目。我在我的服务器上复制了文件夹dist的内容,但似乎无法使用命令开始工作
java -jar nameOfFile.jar
我收到了错误
java.lang.NoClassDefFoundError: org/....
我一直在做一些阅读,从我收集到的是,我需要几乎指定我使用的库所在的位置。好吧,它们位于一个名为lib的子文件夹中。
题:
那么为了能够运行我的jar,我需要做什么?
试试看:
java -classpath "$CLASSPATH:nameOfFile.jar:lib/*" path.to.your.MainClass
这样做是将类路径设置为值 $CLASSPATH
,加上nameOfFile.jar,再加上所有 .jar
文件 lib/
。
试试看:
java -classpath "$CLASSPATH:nameOfFile.jar:lib/*" path.to.your.MainClass
这样做是将类路径设置为值 $CLASSPATH
,加上nameOfFile.jar,再加上所有 .jar
文件 lib/
。
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
在Linux中我们可以做到
export CLASSPATH=$CLASSPATH:[path of the jar]
希望能帮助到你!
Q. What is classpath??
答: 类路径 是Java虚拟机或Java编译器中的参数 specifies the location of user-defined classes and packages.
可以在命令行上或通过环境变量设置参数。
classpaths包含:
JAR文件和
包层次结构顶部的路径。
Q.Why we need to set classpath?
答:基本上 classpath tells the location of classes
所有课程都在哪里
位于。
例如 有时我们需要与数据库建立连接,然后我们需要 jdbc mysql connector jar
。
Q. What is JAR?
JAR(Java档案) 是一种通常用于聚合多个的包文件格式 Java class files
以及相关的元数据和资源(文本,图像等)到一个文件中以在Java平台上分发应用程序软件或库。
只是 JAR: Collection of Classes.
所以要做 与数据库连接 我们必须设置的位置 Mysql Jar在java中的Classpath变量中。
这就是为什么我们在java中需要classpath。
您需要使用设置类路径
以下工作在bash。
这是暂时的
set CLASSPATH=$CLASSPATH=[put the path here for lib]
如果你想要它是永久的,那么你可以在〜/ .bashrc文件中添加上面的行
export CLASSPATH=$CLASSPATH:[put the path here for lib]:.
当你使用 META-INF / MANIFEST.MF 要指定的文件 主类 必须在。中指定依赖项 表现 太。
-jar开关忽略所有其他类路径信息 - 请参阅 工具 docs for more。