2011-06-16 38 views
2

我明白在java中,你被强制为每个类的单个文件。Java和编译不使用IDE时

所以,如果我有类,如:

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

而且我main.java引用用户和其他文件,我将如何通过命令行编译呢?

如果我要的是我引用的外部.jar文件,并且将它们放在特定的文件夹中,那么我怎样才能在编译时加入这个呢? (或者是有一个一般的地方,我可以把他们在那里他们将拿起自动就像巨蟒如何做到这一点)

回答

2

编译,你需要指定每一个源文件,从MY_PROJECT文件夹:

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

您还可以指定jar文件与-cp选项你的类路径:

javac -cp myjarfile.jar main.java 

您可能还需要与-cp标志拨弄,以确保您的类文件夹是在类路径中。

0

除了上面的答案之外,你可以使用类似Apache Ant的东西,以便更容易地配置你的构建(如果它变得复杂)。

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

+0

谢谢,我希望有一个/my_project/classes/*.java类型的命令。 – Blankman 2011-06-16 17:34:03

+0

你可以这样做,但* .class是由你的shell解决的。在unix环境中,这也应该起作用:'javac /my_project/*.java/my_project/classes/*。java'。 – juancn 2011-06-16 17:40:11