java - 用javac编译java类不起作用

标签 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 类?我应该设置类路径还是有其他方法来解决这个问题?

最佳答案

向上一个目录,然后编译它

javac data/JNIResultSet.java

更新: 好的,您的类 JNIResultSet 位于包 model 中,并且它使用包 data 中的其他类。

那么你的编译命令应该如下:

javac -cp . model/JNIResultSet.java

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

你看,这可能非常复杂。对于更多的类(class)来说,这几乎是难以管理的。所以你真的应该考虑使用像 Ant、Maven 或 Gradle 这样的构建系统。

关于java - 用javac编译java类不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39893251/

相关文章:

java - JFrame性能低下

java - 从另一个 Java 程序编译并运行一个 Java 程序

java - 如何在 Java 程序中拦截 SSH 密码请求

visual-studio-2008 - WINDOWS.H 已经包含错误

javascript - 为什么在这里使用指数枚举键?

c++ - 使用内联方法编译简单的 header

java - 使用 javac 编译 Java 文件集时缺少类文件

java - 为什么这不会产生歧义?

java - 我尝试计算某些字符串的 hashCode 但失败了,我做错了什么?

java - 将范围(最小-最大)映射到单个值,如果某个值在某个范围内,则返回在 java 中映射的值