将 jar 文件导入我的 hello world 控制台应用程序

import jar file into my hello world console application

我知道 Maven 用于管理库,但我想做一个我认为可行的简单示例。但是,尽管我花了几个小时进行搜索和尝试,但我还是坚持了下来。这让我很困扰,在放弃之前,我post在这里如果有人可以帮助。

我想做的事情: 我在自己的文件夹中有 User.java 和 Main.java。 我想构建 User 并使其成为 Jar。 我想在我的 Main.java 应用程序中使用 User.jar。

我的设置: ~/User/User.java ~/Main/Main.java

User.java

public class User {
    private String name;
    int idx;
}

Main.java

public class Main {
    public static void main(String[] args) {
        User user = new User();
        System.out.println(user);
    }
}

我试过的:

javac User.java

jar cf User.jar User.class

已将 User.jar 文件复制到主文件夹

javac -cp User.jar Main.java

java Main

给出错误

线程“主”中的异常java.lang.NoClassDefFoundError:用户 在 Main.main (Main.java:5)

我认为给 class jar 路径会解决问题

Java -cp User.jar Main

但这也给出了错误

错误:无法找到或加载主程序 class 主程序 都给出错误

有什么问题并解决?

首先,您的文件存储在不同的包中,

~/User/User.java ~/Main/Main.java

并且您的 Main.java 中没有 import

默认情况下可见性为包私有级别。

您确实应该妥善包装您的 类,但是:

goose@t410:/tmp$ javac Main.java User.java 
goose@t410:/tmp$ jar cfe user.jar Main  Main.class User.class 
goose@t410:/tmp$ java -jar user.jar
User@4e0e2f2a

我找到了对我有帮助的上一个线程。

点击here

在我的 Win 11 开发环境中阅读并试用它们,我发现 -cp 的参数表达式,类路径是 OS 相关的。

我没有完全按照我的意愿让它工作,但我应该继续前进。