如何在Java中设置类路径?
我有许多jar文件要添加到我的类路径中,因此每次编译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
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:既然是编译时错误,就不会有异常了