将-classpath参数中的单个文件包含在Java VM中是否正确?

时间:2012-01-23 07:47:15

标签: java jvm command-line-arguments

此处的当前做法是在类路径中包含单个文件(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文件)的类路径条目将被忽略。

3 个答案:

答案 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"的目录结束。包(第一个包中)   完整的包裹名称)。
  •