关于Java CLASSPATH的基本问题

时间:2012-03-12 23:32:31

标签: java classpath

假设我刚刚创建了一个包“example”并且里面有两个类,“Main”和“Helper”。

使用最简单的编译(例如,$ javac Main.java Helper.java),只要我在包含示例包的目录中,通过在命令行中键入它,我就能够正常运行: / p>

$java example.Main

问题:

  1. 为什么我要设置CLASSPATH,因为我已经可以运行该程序了?我猜是能够在我的机器上的任何目录中键入“$ java example.Main”,但我不确定。

  2. 在命令行中输入“java -cp / path / to / your / java / class / file Main”会发生什么?现在我想象的是包含所有不同类路径的文件,该命令只会添加另一个类路径。是这样的吗?

  3. 在命令中使用“CLASSPATH = / path / to / your / java / class / file”和“java -cp / path / to / your / java / class / file Main”之间是否有区别线?为什么第二个人最后会有班级的名字(即主要的)?

1 个答案:

答案 0 :(得分:1)

  1. 是的,差不多。当然,假设您在java变量
  2. 中有PATH的路径
  3. -cp或-classpath在CLASSPATH
  4. 中的任何内容之前添加它的选项(字符串)
  5. 是的,有区别。使用CLASSPATH通常会更方便,因为您倾向于设置CLASSPATH一次。从那时起,java Main足以执行主类。使用java -cp /path/to/your/java/class/file Main时,您必须每次都输入-cp /path/to/your/java/class/file
  6. 话虽这么说,CLASSPATH-cp-classpath选项通常都包含指向包含程序使用的java库的目录的条目,而不是程序本身的目录。