我正在编译我的源文件:
/home/bob/java/jdk1.5.0_06/bin/javac /home/bob/output/a.java
如何更改此命令行以在/home/bob/class
生成类文件?
此外,如何为此设置环境变量(如JAVA_HOME,CLASSPATH,JAVAPATH)?
答案 0 :(得分:6)
您可以使用-d标志指定输出目录:
$ javac -d /home/bob/class /home/bob/output/a.java
有关java编译器(javac)选项的完整列表,请选中this link out。
答案 1 :(得分:6)
有很多方法可以让javac创建一个类文件/home/bob/class/a.class。
有两个组件可以相互作用来确定生成javac的输出的位置:
“目标目录”的值,由-d选项设置。
该类在a.java'中定义的包属于'。这是由java源文件中的package语句设置的。
这是一个可能的值表,可以为您提供所需的结果,并附有一些关于它们的注释
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 root'目录
以下是一些例子:
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:假定为包根的文件夹/ jar文件列表,用于查找代码所依赖的类文件。 javac使用它将你的dot-java文件转换为点类文件,并由java用来运行你的java类/程序。如果使用javac / java的 JAVAPATH:假定为包根的文件夹/ jar文件列表,用于查找代码所依赖的java源文件。这是由javac命令使用的。如果使用javac的-sourcepath选项,则忽略此变量。 JAVA_HOME:这是java安装的'root目录。在你的问题中,/ home / bob / java / jdk1.5.0_06是JAVA_HOME。此变量通常由Java语言实现的程序使用。像javac和java这样的工具不使用JAVA_HOME,因为它们可以在执行时计算它。大多数时候,人们在他们项目的shell脚本中使用JAVA_HOME来启动他们的程序。 我不鼓励你使用你引用的环境变量。我已经做了大约10年的java编程,很少设置它们。我倾向于使用命令行选项。为什么?因为很容易忘记你的变量设置是什么,最终会出现你认为发生的事情,而不是。
答案 2 :(得分:3)
javac -d /home/bob/class Test.java
将生成的类文件放到指定的目录
/home/bob/class/Test.class
对于其他标志,您需要设置环境变量。 Check this