用 javac 编译 java class 不工作
Compiling java class with javac doesn't work
我想像这样编译我的 java class: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
class?我应该设置 classpath 还是有其他方法可以解决这个问题?
往上一个目录然后用
编译
javac data/JNIResultSet.java
更新:
好的,你的 class JNIResultSet
在包 model
中,它使用包 data
.
中的其他 classes
那么你的编译命令应该是这样的:
javac -cp . model/JNIResultSet.java
-cp .
部分表示您的 class 路径包含当前目录。这是包层次结构的根。因此编译器可以在包 data
中找到 *.java 文件并根据需要编译它们。
你看,这可能非常复杂。对于更多 classes,这将几乎无法管理。所以你真的应该考虑使用像 Ant、Maven 或 Gradle.
这样的构建系统
在将文件编译为
时使用 -classpath
javac -classpath <path-to-dependent-classes> JNIResultSet.java
仅当 Spieler
不在类路径中时才需要!
如需更多帮助,请参阅 javac oracle documentation
我想像这样编译我的 java class: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
class?我应该设置 classpath 还是有其他方法可以解决这个问题?
往上一个目录然后用
编译javac data/JNIResultSet.java
更新:
好的,你的 class JNIResultSet
在包 model
中,它使用包 data
.
那么你的编译命令应该是这样的:
javac -cp . model/JNIResultSet.java
-cp .
部分表示您的 class 路径包含当前目录。这是包层次结构的根。因此编译器可以在包 data
中找到 *.java 文件并根据需要编译它们。
你看,这可能非常复杂。对于更多 classes,这将几乎无法管理。所以你真的应该考虑使用像 Ant、Maven 或 Gradle.
这样的构建系统在将文件编译为
时使用 -classpath
javac -classpath <path-to-dependent-classes> JNIResultSet.java
仅当 Spieler
不在类路径中时才需要!
如需更多帮助,请参阅 javac oracle documentation