我有一堆java文件,我正在运行以下代码以尝试编译它们。
"\Program Files\Java\jdk1.6.0_16\bin\javac" Main.java
我正在看到此错误消息
Main.java:3: package colourtiler.patternsdoes not exist
import colourtiler.patterns.draw;
它所涉及的代码位于文件夹patters / PatternColour.java中,如何才能将其包含在此文件中?
感谢
答案 0 :(得分:6)
您需要在javac / java的-cp
或-classpath
参数中包含其路径。 E.g。
javac -cp .;c:/path/to/colourtiler/patterns/draw Main.java
其中c:/path/to/colourtiler/patterns/draw
指向依赖项类的包根。如果你有更多,那么你需要用分号分隔它。如果路径中有空格,则需要引用单个路径。或者,您也可以将其打包在JAR文件中(或使用已经打包的文件),并将完整文件路径放在类路径中的JAR文件中。
如果收集和输入类路径感到无聊,请考虑使用批处理/ shell文件。
祝你好运。答案 1 :(得分:3)
使用 -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
中,依此类推。
答案 2 :(得分:0)
我需要查看文件列表以确定,但听起来应该是colourtiler / patterns。
答案 3 :(得分:0)
首先需要编译patters/PatternColour.java
,然后在编译Main.java
答案 4 :(得分:0)
通过安装Eclipse并将包含类的文件夹配置为Eclipse项目(使用Import功能),您将获得很多次。
它将避免您作为参数传递所需的JAR库,输出文件夹,......