我正在尝试了解从命令行编译时选项-classpath
的工作原理。
我从mydirectory
的父母那里尝试:
javac -cp mydirectory / subdir Hello.java
但是编译器说:
javac:没有源文件
-cp
(-classpath
)如何运作?我做错了什么?
如果我是从subdir
目录:
javac Hello.java
然后正确编译。
答案 0 :(得分:1)
javac TestProgram1.java TestProgram2.java TestProgram3.java
您可以使用通配符编译文件夹中的所有文件,如下所示:
javac *.java
如果您需要同时编译大量文件但不想使用通配符(可能要编译大量文件而不是文件夹中的所有文件),则可以创建参数文件,列出要编译的文件。在参数文件中,您可以根据需要键入任意数量的文件名,使用空格或换行符将它们分开。这是一个名为TestPrograms的参数文件,列出了三个要编译的文件:
TestProgram1.java
TestProgram2.java
TestProgram3.java
您可以使用@字符编译此文件中的所有程序,然后使用javac命令行上的参数文件的名称,如下所示:
javac @TestPrograms
-cp和-classpath
指定查找用户类文件的位置。如果您的程序使用您存储在单独文件夹中的类文件,请使用此选项。
答案 1 :(得分:0)
您正在编译的文件必须直接定义
例如,如果您在父文件夹中:
javac subdir/Hello.java
需要编译。
类路径允许查找编译上面定义的内容所需的.class文件。
例如,如果在代码中您引用了“Birds”类,并且该类位于当前文件夹中名为“animals.jar”的jar中,该文件夹是java文件所在的父项,那么需要这个:
javac -cp animals.jar subdir/Hello.java
答案 2 :(得分:0)
javac XXX.java
用于编译java类的命令,其中as java命令可以使用 -classpath 标志。
我们使用
运行java程序java XXX.class
这里以main()函数开头,JVM应该知道类文件的位置。 所以要指定类的路径,我们使用classpath标志
Classpath链接以获取更多详细信息。
运行java程序的一些例子是
java -classpath .;yourJarFile.jar your.MainClass
java -classpath path_till_classfile/HelloWorld