Java和不使用IDE时编译

时间:2011-06-16 17:24:28

标签: java packages javac

我在java中理解你被强制为每个类的一个文件。

所以,如果我有类似的课程:

/my_project/main.java
/my_project/classes/user.java
/my_project/classes/other.java

我的main.java引用了用户和其他文件,如何通过命令行编译?

如果我要引用外部.jar,我将它们放在一个特定的文件夹中,我怎么能在编译中包含它? (或者是否有一般的地方我可以把它们放在自动拾取的地方,就像python一样)

4 个答案:

答案 0 :(得分:2)

要编译,您需要从my_project文件夹中指定每个源文件:

javac classes/user.java classes/other.java main.java

您还可以使用-cp选项为类路径指定jar文件:

javac -cp myjarfile.jar main.java

您可能还需要摆弄-cp标志以确保您的classes文件夹位于类路径中。

答案 1 :(得分:2)

首先,使用小写字母开始Java类的风格很差。

只有公共类需要在他们自己的文件中,但是您可以在同一个文件中添加任意数量的包私有类(尽管这被视为风格很差)。

那就是说,编译代码的最简单方法是:

javac /my_project/main.java /my_project/classes/user.java /my_project/classes/other.java

在任何情况下,正确的代码布局应该是类在与其包匹配的目录结构中。

编辑:这里的约定有一个相当不错的解释http://www.particle.kth.se/~lindsey/JavaCourse/Book/Part1/Java/Chapter05/packagesImport.html

答案 2 :(得分:0)

除上述答案外,您还可以使用类似Apache Ant的内容,以便更轻松地配置构建(如果它变得复杂)。

答案 3 :(得分:0)

查看documentation for javac。您可以传递多个源文件,也可以指定源目录。