如何使用通配符的类路径添加多个瓶子?[重复]
题
这个问题已经有一个答案在这里:
- 包括所有的罐子目录中的内Java类路径 24的答案
我一直在使用,使许多第3党库(罐子文件),我的类路径是完全搞砸了因为我必须包括路径,为每一个罐子文件使用。
我一直在想如果有一个方法可以包括所有的罐子文件夹中的文件中使用通配符的(*)运营商(如*.罐子).但它似乎是没有工作。是否有任何其他办法,可以缩短类路径,目前看起来像一篇文章;)在我的电脑?.
解决方案
自: http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html
类路项可以包含的基本部分通配符的
*
, ,这被认为是等同于指定一个列表中的所有文件的目录扩展。罐子。罐子。例如,这类道路的入口foo/*
指定的所有罐子目录中的文件名为foo。一类路径中的条目组成的简单的*
扩大到列表中的所有罐子文件,在当前的目录。
这应该在Java6,不能确定Java5
(如果它看起来这工作不如预期,尝试把报价。例如: "foo/*"
)
其他提示
这适用于Windows:
java -cp "lib/*" %MAINCLASS%
哪里 %MAINCLASS%
当然是类含有你的主要方法。
或者:
java -cp "lib/*" -jar %MAINJAR%
哪里 %MAINJAR%
是的罐子文件启动通过其内部清单。
Basename野卡介绍了在Java6;即"foo/*"装置"。罐子"的文件在"foo"目录。
在早期版本的Java,不支持配符类路径,我已经诉诸使用外壳的包装脚本组装一类路径的'匹配替换'的模式和重整结果插入':'字在适当点数。这会是很难做到在一个蝙蝠文件...
如果你的意思是,你有一个环境变量类路径,我会说是你的错误。我没有这样的事情在任何计算机上我的发展Java。类路径是如此依赖于特定的项目,这是不可能有一个正确的类路径的工作。
我设置类路径,对每一个项目使用IDE或蚂蚁。我做了很多网络的发展,使每一个战争和耳使用他们自己的类路径。
它忽略IDEs和应用程序服务器。为什么你有吗?我建议删除它。