从命令行编译

时间:2013-07-30 16:44:45

标签: java command-line compilation

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

我从mydirectory的父母那里尝试:

  

javac -cp mydirectory / subdir Hello.java

但是编译器说:

  

javac:没有源文件

-cp-classpath)如何运作?我做错了什么?

如果我是从subdir目录:

  

javac Hello.java

然后正确编译。

3 个答案:

答案 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