如何编译java代码?

问题描述:

我有一堆java文件,我试图编译它们时运行下面的代码。如何编译java代码?

"\Program Files\Java\jdk1.6.0_16\bin\javac" Main.java 

而我正在被显示此错误消息

Main.java:3: package colourtiler.patternsdoes not exist 
import colourtiler.patterns.draw; 

它isreferring到位于文件夹patters/PatternColour.java的代码,我怎么能得到它包含这个文件?

感谢

+1

添加 “\ Program Files文件\的Java \ jdk1.6.0_16 \ BIN \” 到%PATH%环境变量,以便只需输入“javac”即可在任何地方执行javac。 – BalusC 2009-11-04 14:28:03

我需要查看文件信息,确保客户,但它听起来像它应该是在colourtiler /模式。

首先需要编译patters/PatternColour.java然后添加合成类位置到类路径编译Main.java

您需要包括其在使用javac/Java的-cp-classpath参数路径时。例如。

javac -cp .;c:/path/to/colourtiler/patterns/draw Main.java 

其中c:/path/to/colourtiler/patterns/draw指向依赖关系类的包根目录。如果你有更多,那么你需要用分号分隔它。如果路径中有空格,则需要引用单个路径。或者,您也可以将其打包到JAR文件中(或使用已打包的文件),并将完整的文件路径放到类路径中的JAR文件中。

如果收集和键入类路径感到厌倦,请考虑使用批处理/ shell文件。

祝你好运。

使用-classpath(又名-cp)或-sourcepath参数来设置基源位置。使用-classpath参数指定二进制依赖项(jar文件或base .class文件目录)。使用-d参数指定输出目录。

需要注意的一件事是名称空间(包)必须匹配目录结构。

C:\temp>dir /B /S 
C:\temp\bin 
C:\temp\foo 
C:\temp\src 
C:\temp\src\foo 
C:\temp\src\foo\Bar.java 
C:\temp\src\foo\Baz.java 

C:\temp>type src\foo\Bar.java 
package foo; 
public class Bar extends Baz {} 

C:\temp>javac -cp .\src -d .\bin src\foo\Bar.java 

C:\temp>dir /B /S 
C:\temp\bin 
C:\temp\foo 
C:\temp\src 
C:\temp\bin\foo 
C:\temp\bin\foo\Bar.class 
C:\temp\bin\foo\Baz.class 
C:\temp\src\foo 
C:\temp\src\foo\Bar.java 
C:\temp\src\foo\Baz.java 

类文件中声明package foo;必须在目录foo。声明package foo.foo;的类文件必须位于目录foo\foo中,依此类推。

请参阅javac的文档。有关更广泛的classpath文档,请参见here

通过安装Eclipse并将包含类的文件夹配置为Eclipse项目(使用导入功能),您将获得很多次。

这将避免你作为参数传递所需的JAR库,输出文件夹,...