将JAR文件导入我的Hello World Console应用程序
我知道 Maven 用于管理库,但我想做一个我认为可行的简单示例。但尽管我花了几个小时搜索和尝试,但我还是坚持了下来。这让我很困扰,在放弃之前,如果有人可以提供帮助,我会在这里发帖。
我想做的事情: 我有 User.java 和 Main.java 在它自己的文件夹中。 我想构建 User 并使其成为 Jar。 我想在我的 Main.java 应用程序中使用 User.jar。
我的设置: 〜/用户/用户.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
< code>jar cf User.jar User.class
将 User.jar 文件复制到主文件夹
javac -cp User.jar Main.java
java Main
给出错误
<强>线程“main”中的异常java.lang.NoClassDefFoundError:用户 在 Main.main (Main.java:5)
我认为给 jar 提供类路径将修复
Java -cp User.jar Main
但这也会给出错误
Error: Could not查找或加载主类Main 两者都给出错误
有什么问题并修复?
I understand Maven is used to manage libs, but I wanted to do a simple example I thought will work . But I am stuck with though I spent few hours searching and trying out. This bothers me a lot, before give up, I post here if anyone can help.
What I want to do:
I have User.java and Main.java in its own folder.
I want to build User and make it Jar.
And I want to use User.jar in my Main.java application.
My setup:
~/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);
}
}
What I tried:
javac User.java
jar cf User.jar User.class
copied User.jar file to Main folder
javac -cp User.jar Main.java
java Main
gives error
Exception in thread "main" java.lang.NoClassDefFoundError: User
at Main.main (Main.java:5)
I think giving class path to jar will fix
Java -cp User.jar Main
but this also gives error
Error: Could not find or load main class Main
both give error
what's problem and fix?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您确实应该正确打包您的类,但是:
You really should properly package your classes, but:
首先,您的文件存储在不同的软件包中,
,您在main.java中没有
import
。默认情况下,可见性是私人级别的软件包。
First of all, your files are storing in a different packages,
and you have no
import
in your Main.java.By default the visibility is package private level.
我能够找到以前有帮助的线程。
单击此处
在我的开发环境 Win 11 中阅读并尝试它们,我发现 -cp 的参数表达式,类路径取决于操作系统。
我没有完全按照我想要的方式工作,但我应该继续前进。
I was able to find previous thread that helps.
Click here
Reading and trying them out in my development environment which is Win 11, I found argument expression to -cp, classpath is OS depedent.
I didn't quite make it work as I wanted but I should move on.