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