4

我试图了解-classpath从命令行编译时该选项的工作原理。

我从父母那里尝试mydirectory

javac -cp mydirectory/subdir Hello.java

但是编译器说:

javac:没有源文件

-cp( )是如何-classpath工作的?我究竟做错了什么?

如果我从subdir目录中制作它:

javac 你好.java

然后正确编译。

4

3 回答 3

1
javac TestProgram1.java TestProgram2.java TestProgram3.java

您可以使用通配符来编译文件夹中的所有文件,如下所示:

javac *.java

如果你需要同时编译很多文件但又不想使用通配符(也许你想编译大量文件但不是一个文件夹中的所有文件),你可以创建一个参数文件,其中列出了要编译的文件。在参数文件中,您可以键入任意数量的文件名,使用空格或换行符来分隔它们。这是一个名为 TestPrograms 的参数文件,其中列出了要编译的三个文件:

TestProgram1.java
TestProgram2.java
TestProgram3.java

您可以使用 @ 字符,后跟 javac 命令行上的参数文件的名称来编译此文件中的所有程序,如下所示:

javac @TestPrograms

-cp 和 -classpath

指定在哪里可以找到用户类文件。如果您的程序使用存储在单独文件夹中的类文件,请使用此选项。

于 2013-07-30T16:53:10.067 回答
0

您正在编译的文件必须直接定义

例如,如果您在父文件夹中:

javac subdir/Hello.java

需要编译。

类路径允许查找编译上述定义的内容所需的 .class 文件。

例如,如果在代码中引用了“Birds”类,并且该类位于当前文件夹中名为“animals.jar”的 jar 中,该文件夹是 java 文件所在的父级,则需要此:

javac -cp animals.jar subdir/Hello.java
于 2013-07-30T16:51:35.123 回答
0
javac XXX.java

用于编译 java 类的命令,其中 -classpath标志可用于 java 命令。

我们通过使用运行java程序

java XXX.class

这里从 main() 函数开始,JVM 应该知道类文件在哪里。所以要指定类的路径,我们使用类路径标志

类路径链接以获取更多详细信息。

运行java程序的一些例子是

java -classpath .;yourJarFile.jar your.MainClass

 java -classpath path_till_classfile/HelloWorld
于 2013-07-30T17:02:28.887 回答