为什么我必须使用java -cp。 (类名)而不是java(类名)?

时间:2013-08-22 15:53:28

标签: java terminal

我只是好奇为什么在像我这样的系统上,我必须使用java -cp。并且只是在终端窗口中使用java命令不起作用?

2 个答案:

答案 0 :(得分:2)

使用java命令启动JVM时,JVM的类路径确定如下:

  • 如果使用“-jar”选项,则类路径由JAR文件本身以及JAR文件中的可选“Classpath”属性组成。

  • 否则,如果使用“-cp”选项,则选项的值将给出类路径

  • 否则,如果设置了CLASSPATH环境变量,则会给出类路径

  • 否则,类路径只包含当前目录;即“。”。


现在你说你必须明确地给出“-cp”。为了让java命令正确执行命令。

最可能的解释是您将CLASSPATH环境变量设置为不适当的内容。运行java MyClass时,它将查看CLASSPATH指定的类路径...并且失败。但是当你添加“-cp。”时,你会说“忽略CLASSPATH而只是在当前目录中查找”。

答案 1 :(得分:0)

选项-cp用于添加Java环境仅为该执行加载的一个或多个目录的路径。这些文件“将包含您在程序中使用的库的引用”。 或者,使用-cp可以永久设置类路径。设置方式取决于您使用的操作系统。 更多信息请访问:http://docs.oracle.com/javase/tutorial/essential/environment/paths.html