使用javac编译java类不起作用

时间:2016-10-06 10:11:54

标签: java compilation javac

我想编译我的java类:javac ResultSet.java

但是我收到以下错误:

ResultSet.java:5: error: package data does not exist
import data.Spieler;
       ^
ResultSet.java:8: error: cannot find symbol
    private ArrayList<Spieler> meineSpieler = new ArrayList<Spieler>();
                      ^
symbol:   class Spieler
location: class ResultSet
ResultSet.java:12: error: cannot find symbol
    public native Spieler[] getSpieler();
                  ^
symbol:   class Spieler
location: class ResultSet
ResultSet.java:18: error: cannot find symbol
    public ArrayList<Spieler> getMeineSpieler() {
                     ^
symbol:   class Spieler
location: class ResultSet
ResultSet.java:8: error: cannot find symbol
    private ArrayList<Spieler> meineSpieler = new ArrayList<Spieler>();
                                                            ^
symbol:   class Spieler
location: class ResultSet

如何导入spieler课程?我应该设置类路径还是有其他方法来修复它?

2 个答案:

答案 0 :(得分:1)

进入一个目录,然后使用

进行编译
javac data/JNIResultSet.java

<强>更新 好的,您的班级JNIResultSet位于包model中,并使用包data中的其他类。

然后你的编译命令应该如下:

javac -cp . model/JNIResultSet.java

-cp .部分表示您的类路径包含当前目录。这是包层次结构的根。因此编译器可以在包data中找到* .java文件,并根据需要编译它们。

你知道,这可能非常复杂。对于更多的课程,这几乎是无法管理的。所以你应该考虑使用像Ant,Maven或Gradle这样的构建系统。

答案 1 :(得分:1)

在将文件编译为
时使用 -classpath javac -classpath <path-to-dependent-classes> JNIResultSet.java

仅当Spieler不在类路径上时才需要

有关更多帮助,请参阅javac oracle documentation