为类路径设置文件夹[重复]

Posted

技术标签:

【中文标题】为类路径设置文件夹[重复]【英文标题】:Set folder for classpath [duplicate] 【发布时间】:2012-02-21 14:44:12 【问题描述】:

如何在命令行中设置 Java CLASSPATH 选项以指向一个或多个包含多个 jar 文件的目录?是否有用于递归目录和子目录支持的通配符?

(我的 JAR 文件在几个子目录中排序。)

【问题讨论】:

***目录的路径应该足够了。 复制***.com/questions/219585/… 【参考方案1】:

如果您使用的是 Java 6 或更高版本,则可以使用这种形式的通配符:

java -classpath ".;c:\mylibs\*;c:\extlibs\*" MyApp

如果你想添加所有子目录:lib\a\、lib\b\、lib\c\,除了:

java -classpath ".;c:\lib\a\*;c:\lib\b\*;c:\lib\c\*" MyApp

对于您想要完成的工作,没有什么比 lib\*\*lib\** 通配符更适合。

【讨论】:

这不是我的意见。这是从这里docs.oracle.com/javase/7/docs/technotes/tools/windows/… 引用的事实:Subdirectories are not searched recursively. For example, foo/* looks for JAR files only in foo, not in foo/bar, foo/baz, etc. 如果你想知道为什么路径有“.;”开始时,要确保系统中通过环境变量等设置的现有类路径不会被覆盖。 @msi 对不起,我的目的是感谢您的回复。 在 Mac 和 Linux 中,: 是类路径分隔符 请对 linux 提出同样的建议【参考方案2】:

将命令用作

java -classpath ".;C:\MyLibs\a\*;D:\MyLibs\b\*" <your-class-name>

上面的命令只会将提到的路径设置为classpath一次,以执行名为TestClass的类。

如果你想执行多个类,那么你可以按照这个

set classpath=".;C:\MyLibs\a\*;D:\MyLibs\b\*"

在此之后,您只需键入即可执行任意数量的类

java <your-class-name>

在您关闭命令提示符之前,上述命令将一直有效。但是关闭命令提示符后,如果要重新打开命令提示符并尝试执行某些类,则必须借助上述两种方法中的任何一种重新设置类路径。(执行一个类的第一种方法和第二种一个用于执行更多类)

如果你想只设置一次classpth以便它每次都可以工作,那么请执行以下操作

1. Right click on "My Computer" icon
2. Go to the "properties"
3. Go to the "Advanced System Settings" or "Advance Settings"
4. Go to the "Environment Variable"
5. Create a new variable at the user variable by giving the information as below
    a.  Variable Name-     classpath
    b.  Variable Value-    .;C:\program files\jdk 1.6.0\bin;C:\MyLibs\a\';C:\MyLibs\b\*
6.Apply this and you are done.

请记住,这将每次都有效。您不需要一次又一次地显式设置类路径。

注意:如果你想在一天后添加一些其他库,那么不要忘记在“环境变量”的“变量值”末尾添加一个分号,然后输入路径分号后的新库。因为分号分隔不同目录的路径。

希望这会对你有所帮助。

【讨论】:

以上是关于为类路径设置文件夹[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将 JSON 转换为类 [重复]

从bat文件设置类路径不起作用[重复]

笔记1

文件路径的Python常量[重复]

将脚本注册为类

如何避免在 csh 中重复路径变量