将 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 相关的。
我没有完全按照我的意愿让它工作,但我应该继续前进。
我知道 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 相关的。
我没有完全按照我的意愿让它工作,但我应该继续前进。