javac多个命令选项

时间:2016-04-01 23:50:10

标签: java path classpath javac

我已经将我的Java文件分类到子目录中以使其更整洁,并且想知道是否可以访问jar和源文件,然后将类文件放在一个javac命令中的另一个指定文件夹中?

作为标准,我的/ lib中的jar文件,/ src中的java文件,以及一个名为/ bin的空文件夹,我的类文件应该放在哪里。

当我的java&类文件是顶级的,只有jar在子目录中,我的终端命令编译是:

javac -cp .:./lib/mysql-connector-java-5.1.38-bin.jar Test.java 

我到目前为止理解我需要-cp来查找jar但是还需要-d来指定我想要放置类文件的位置和-sourcepath来查找源文件(我不会只需要src / Test。但是java?)。

我如何才能为终端提供合法的输入?

从那里开始提出的问题是有没有办法创建一个脚本来每次在linux中运行该javac命令?知道这一点非常简洁。

非常感谢!

1 个答案:

答案 0 :(得分:0)

首先回答你的问题

  

...可以访问jar和源文件,然后将类文件放在一个javac命令中的另一个指定文件夹中吗?

是。使用-cp指定类路径,使用-d指定目标目录。请注意,类文件将根据包名称层次结构写入目标目录的子目录。

如果要逐步编译,最好在类路径中包含-d目录。对于非增量(干净)构建,首先删除-d目录中的所有内容。

  

我如何才能为终端提供合法的输入?

javac -d bin -cp bin:./lib/mysql-connector-java-5.1.38-bin.jar Test.java 
  

从那里开始提出的问题是有没有办法创建一个脚本来每次在linux中运行该javac命令?

每次都是什么?

  • 是的,可以在Linux中编写脚本。事实上相对容易,如果你做的很简单。 (我相信你可以找到一些有关shell脚本的教程。)

  • 是的,可以编写脚本来运行javac命令。

  • 是的,可以编写一个脚本来运行javac命令以及之前或之后的其他事情。

  • 这是个好主意吗?由您决定。

但是,与编写ad hoc shell脚本相比,有更好的方法来构建(特别是)大型Java应用程序。我建议您花点时间了解可移植的Java构建工具,如Ant,Maven和Gradle