当前位置: 首页 > 面试题库 >

Java编译器选项,即javac -d

许博
2023-03-14
问题内容

我正在编译一个具有package语句的程序。例如

package APPC_LU62.Runtime ;

我也有一个与package语句匹配的现有目录结构。

C:\APPC_LU62\Runtime

如何防止javac编译器在预先存在的目录结构中创建相同的目录结构?即

C:\APPC_LU62\Runtime\APPC_LU62\Runtime

在我看来,编译器应该足够“聪明”,可以在创建目录结构之前先对其进行检查。

谢谢


问题答案:

通常,编译器期望源文件并根据包结构输出类文件。

如果不提供任何选项-sourcepath(或未提供任何-classpathsourcepath),则相对于当前目录搜索源文件。如果给出了源路径,则将相对于该路径搜索源文件(除了在命令行上直接指定的任何文件)。

同样,如果不指定任何-d选项,则相对于当前目录,类文件将根据包结构放入目录中。如果提供-d选项,则将类文件相对于该选项给定的目录放置。不存在的目录将在此处创建。

因此,如果要在与源文件相同的目录树中创建输出,通常的方法是更改​​为该树的根(C:\在您的情况下),然后从那里调用javac:

javac -classpath ... -sourcepath . APPC_LU62\Runtime\*.java

(或仅列出您实际要编译的Java文件)。或者,您可以添加-d C:\-sourcepath C:\选项,然后从任何需要的地方调用命令:

javac -classpath ... -sourcepath C:\ -d C:\  C:\APPC_LU62\Runtime\*.java

以后使用java命令执行类也同样有效:这也期望根据包结构在目录中使用类,其中根是类路径中提到的目录或jar文件。因此,你必须添加C:\-classpath您的java电话。

(顺便说一句,我不会将某个驱动器的根目录用作包层次结构的根目录-最好将所有目录都移到一个目录下。)



 类似资料:
  • 问题内容: 我正在尝试使用Ant将Web应用程序打包到war文件中。 构建时,出现以下错误: 以下是我的build.xml 如何编译没有主类的类文件? 如何设置课程路径? 作为参考,我正在使用Eclipse。 问题答案: 除了需要在JDK的/ lib目录中的tools.jar的javac任务以外,所有您的蚂蚁工具都可以正常工作,在这种情况下,JRE是不够的。因此,来自ant的提示是:“无法找到ja

  • android { compileOptions { sourceCompatibility = "1.6" targetCompatibility = "1.6" } } 默认值是“1.6”。这个设置将影响所有task编译Java源代码。

  • 编译选项 选项 类型 默认值 描述 --allowJs boolean false 允许编译javascript文件。 --allowSyntheticDefaultImports boolean module === "system"或设置了--esModuleInterop 允许从没有设置默认导出的模块中默认导入。这并不影响代码的输出,仅为了类型检查。 --allowUnreachableCo

  • 问题内容: 我试图得到以下消息: 好吧,有一个开放的jdk,我也下载了另一个。我尝试将JAVA_HOME指向两者,现在已设置: 我还尝试选择其中一种打开方式,但是其中的不同jdk版本出现相同的错误。 我该如何解决?提前致谢。 问题答案: 似乎您的PATH未正确选择…“ echo $ PATH”的输出是否包含javac所在的目录?我建议如下: 打开终端并执行: 如果javac -version仍然不

  • 我在Eclipse中pom.xml中收到错误消息。 http://Maven.apache.org/Maven-v4_0_0.xsd“>4.0.0com.hmis chmis war 1.0-快照chmis Maven Webapp http://Maven.apache.org 这是我的pom.xml。当我运行该程序时,会出现如下错误。

  • 当我试图编译一个带有注释的项目时,我遇到了以下错误 如何在java解析器中修复此错误?我使用elcipselink和eclipse作为IDE。