Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中设置类路径?_Java_Jar_Classpath - Fatal编程技术网

如何在Java中设置类路径?

如何在Java中设置类路径?,java,jar,classpath,Java,Jar,Classpath,我有许多jar文件要添加到我的类路径中,因此每次编译java文件时,我都会得到如下命令: javac -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. CollectionIndexer.java 我尝试使用: set CLASSPATH

我有许多jar文件要添加到我的类路径中,因此每次编译java文件时,我都会得到如下命令:

javac -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. CollectionIndexer.java
我尝试使用:

set CLASSPATH=commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:.
然后:

javac CollectionIndexer.java
但是jar根本没有被添加:我得到的错误是由于缺少jar。。。
谢谢

尝试使用
导出类路径=…
而不是
设置类路径=…


(我假设您使用的是某种描述的Unix框,给定类路径中的冒号。)

尝试使用
导出类路径=…
而不是
设置类路径=…


(我假设您使用的是某种描述的Unix框,因为类路径中有冒号。)

除了导出Unix环境外,还要使用绝对路径。例如,类路径条目:commons-digester-2.1/commons-digester-2.1.jar仅在您位于commons-digester-2.1安装目录的父目录中时有效


在unix上,应该有一个安装软件包的公共位置。类似于/usr/local、/usr/lib或/usr/local/lib的内容。

除了导出UNIX环境之外,还要使用绝对路径。例如,类路径条目:commons-digester-2.1/commons-digester-2.1.jar仅在您位于commons-digester-2.1安装目录的父目录中时有效


在unix上,应该有一个安装软件包的公共位置。类似于/usr/local、/usr/lib或/usr/local/lib的东西。

也许您想尝试使用maven构建您的应用程序? 它的设置非常简单,并且消除了依赖关系管理的所有问题

在java 6中,还可以在类路径中使用通配符:
设置CLASSPATH=my_libs\*

也许您想尝试使用maven构建您的应用程序? 它的设置非常简单,并且消除了依赖关系管理的所有问题

在java 6中,还可以在类路径中使用通配符:
设置CLASSPATH=my_libs\*

在我看来,最轻松的方法是创建包含所有项目相关JAR的批处理文件。。。一个要编译,另一个要运行:-

compile.bat

javac -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
java -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
跑步。蝙蝠

javac -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
java -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
有了它,您可以执行以下操作:-

compile.bat CollectionIndexer.java

run.bat CollectionIndexer
compilerun.bat CollectionIndexer
更好的是,您可以将它们结合在一起:-

compilerun.bat

javac -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
java -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
确保将“.java”附加到javac的
%1

javac -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1.java
java -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
有了它,您可以执行以下操作:-

compile.bat CollectionIndexer.java

run.bat CollectionIndexer
compilerun.bat CollectionIndexer

与设置类路径相比,我更喜欢这种方法,因为我不需要在每次打开终端时重新键入类路径。:)

在我看来,最简单的方法是创建包含所有项目相关JAR的批处理文件。。。一个要编译,另一个要运行:-

compile.bat

javac -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
java -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
跑步。蝙蝠

javac -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
java -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
有了它,您可以执行以下操作:-

compile.bat CollectionIndexer.java

run.bat CollectionIndexer
compilerun.bat CollectionIndexer
更好的是,您可以将它们结合在一起:-

compilerun.bat

javac -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
java -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
确保将“.java”附加到javac的
%1

javac -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1.java
java -cp commons-digester-2.1/commons-digester-2.1.jar:lucene-core-3.0.3.jar:commons-logging-1.1.1/commons-logging-1.1.1.jar:commons-beanutils-core-1.7.0.jar:. %1
有了它,您可以执行以下操作:-

compile.bat CollectionIndexer.java

run.bat CollectionIndexer
compilerun.bat CollectionIndexer

与设置类路径相比,我更喜欢这种方法,因为我不需要在每次打开终端时重新键入类路径。:)

顺便说一句,专门为编译项目修改
CLASSPATH
环境变量不是很好,因为在此之后,所有其他项目都将继承此更改。当然,只有当你在全球范围内改变它时,这一点才有效。如果你不是,而是你打算写一个小脚本来建立你的项目,你为什么不考虑使用<代码>蚂蚁< /代码>?祝你好运

顺便说一句,专门为编译项目修改
CLASSPATH
环境变量不是很好,因为在此之后,所有其他项目都将继承此更改。当然,只有当你在全球范围内改变它时,这一点才有效。如果你不是,而是你打算写一个小脚本来建立你的项目,你为什么不考虑使用<代码>蚂蚁< /代码>?祝你好运

您已经设置了类路径,但没有将其放入环境中。所以它是一个变量,但不完全是一个环境变量

要将脚本内/会话内变量升级为环境变量,请使用如下命令
export

export CLASSPATH
这会将变量升级为环境变量(继承环境的任何shell都可以访问该变量)

有些系统允许集合和导出的组合。在此类系统中,可以将set命令与export命令组合使用,如下所示:

export CLASSPATH=<your value here>
导出类路径=

java命令只读取环境变量CLASSPATH。它不能查看非环境变量,因为这些变量不是从一个进程到另一个进程继承的。

您已经设置了类路径,但没有将其放入环境中。所以它是一个变量,但不完全是一个环境变量

要将脚本内/会话内变量升级为环境变量,请使用如下命令
export

export CLASSPATH
这会将变量升级为环境变量(继承环境的任何shell都可以访问该变量)

有些系统允许集合和导出的组合。在此类系统中,可以将set命令与export命令组合使用,如下所示:

export CLASSPATH=<your value here>
导出类路径=

java命令只读取环境变量CLASSPATH。它无法查看非环境变量,因为这些变量不是从一个进程到另一个进程继承的。

您可以发布异常堆栈吗?@Will:鉴于这是一个编译时错误,不会有任何异常。您可以在运行java程序时尝试设置类路径。java-cp。您正在使用eclipse吗?上网本?文本编辑器?@Will sure:(Queryperformer.java=CollectionIndex.java..这只是我的java文件)听起来你已经到了理智的人开始使用ant为他们构建类路径的时候了…你能发布异常堆栈吗?@Will:既然是编译时错误,就不会有异常了