此处的当前做法是在类路径中包含单个文件(JAR文件除外,例如配置文件或数据文件)。这被认为是正确的,为什么或为什么不呢?
更新
来自http://docs.oracle.com/javase/7/docs/tooldocs/windows/java.html:
-cp classpath 指定目录,JAR存档和ZIP存档列表以搜索类文件。类路径条目由分号分隔 (;)。指定-classpath或-cp会覆盖任何设置 CLASSPATH环境变量。
这个问题也可以解释为询问,上面列举的目录,JAR档案和ZIP档案是否包含一个隐含的“而没有别的”?
更新
取消接受答案,因为在我更改了我的类路径以包含目录而不是特定文件后,程序开始工作。所以我正在调查是否涉及其他问题,或者指定单个文件是否不起作用(或者至少,并不总是有效)。
更新
来自http://docs.oracle.com/javase/7/docs/tooldocs/windows/classpath.html:
既不是目录也不是档案(.zip或.jar文件)的类路径条目将被忽略。
答案 0 :(得分:2)
类路径包含目录或jar文件
答案 1 :(得分:2)
如果你的程序使用Classloader.getResourceAsStream()
(或类似的方式)加载那些其他文件,那么将这些文件包含在类路径中是完全合理的。
这很常见,例如用于与应用程序捆绑在一起的许可证文件。
所以是的,这被认为是正确的 - 至少从我的观点来看。
答案 2 :(得分:0)
来自http://docs.oracle.com/javase/7/docs/tooldocs/windows/java.html:
-cp classpath
指定目录,JAR存档和ZIP存档列表以搜索类文件。 指定-classpath或-cp会覆盖CLASSPATH环境变量的任何设置。
如果未使用-classpath和-cp且未设置CLASSPATH,则用户类路径包含 当前目录(。)。
有关类路径的详细信息,请参阅设置类路径 (http://docs.oracle.com/javase/7/docs/tooldocs/windows/classpath.html)。
来自http://docs.oracle.com/javase/7/docs/tooldocs/windows/classpath.html:
既不是目录也不是归档的类路径条目(.zip或.zip .jar文件)被忽略。
此外:
每个类路径都应该 以文件名或目录结束,具体取决于您设置的内容 类路径:
- 对于包含.class文件的.jar或.zip文件,类路径以.zip或.jar文件的名称结尾。
- 对于未命名包中的.class文件,类路径以包含.class文件的目录结束。
- 对于命名包中的.class文件,类路径以包含" root"的目录结束。包(第一个包中) 完整的包裹名称)。