gpt4 book ai didi

java - 如何为 javac 指示编译类应该去哪里?

转载 作者:搜寻专家 更新时间:2023-11-01 04:03:46 26 4
gpt4 key购买 nike

我正在这样编译我的源文件:

/home/bob/java/jdk1.5.0_06/bin/javac /home/bob/output/a.java

我如何更改此命令行以在 /home/bob/class 中生成类文件?

此外,应如何设置环境变量(如 JAVA_HOME、CLASSPATH、JAVAPATH)才能使其正常工作?

最佳答案

有很多方法可以让 javac 创建一个类文件/home/bob/class/a.class。

有两个组件相互作用以确定将在何处生成 javac 的输出:

'目标目录'的值,由 -d 选项设置。

a.java 中定义的类“属于”的包。这由您的 java 源文件中的包语句设置。

这是一个可能的值表,可以让你得到你正在寻找的结果,并附有一些关于它们的注释

destination directory (-d) |  package declaration |           comments /home/bob/classes         |       not set        | you probably have this /home/bob                 |       classes        | not recommended. See note 1. /home                     |     bob.classes      | not recommended. /                         |   home.bob.classes   | not recommended.

注意 1:虽然可以在包声明中放置任何值,但不建议这样做。推荐的做法是让你的类的包结构被你的源文件的布局模仿,相对于一些“包根”目录

这里有一些例子:

package declaration |   package root   | recommended path of source file     z              | /home/b/project1 |   /home/b/project1/z/MyClass.java    y.z             | /home/b/project1 |   /home/b/project1/y/z/MyClass.java

您引用的每个环境变量都有一个特定的“工作”,随着您对 Java 开发的了解越来越多,这可能对完成一些作业很有用。

CLASSPATH:假定为包根的文件夹/ja​​r 文件列表,用于查找您的代码所依赖的类文件。 javac 使用它来将您的点 java 文件转换为点类文件,并且 java 使用它来运行您的 java 类/程序。如果您使用 javac/java 的 -classpath 选项,该变量将被忽略。

JAVAPATH:文件夹/ja​​r 文件的列表,这些文件夹/ja​​r 文件被假定为包根,用于查找您的代码所依赖的 java 源文件。这是由 javac 命令使用的。如果您使用 javac 的 -sourcepath 选项,该变量将被忽略。

JAVA_HOME:这是您的 java 安装的“根”目录。在您的问题中,/home/bob/java/jdk1.5.0_06 是 JAVA_HOME。该变量通常由以 Java 语言实现的程序使用。 javac 和 java 等工具不使用 JAVA_HOME,因为它们可以在执行时计算它。大多数时候,人们在他们项目的 shell 脚本中使用 JAVA_HOME 来启动他们的程序。

我不鼓励您使用您引用的环境变量。我做java编程大概有10年了,很少设置。我倾向于使用命令行选项。为什么?因为很容易忘记您的变量设置是什么,并最终出现您认为正在发生的情况,实际上并没有发生。

关于java - 如何为 javac 指示编译类应该去哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2487001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com