Home > Blockchain >  import jar file into my hello world console application
import jar file into my hello world console application

Time:04-14

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?

CodePudding user response:

First of all, your files are storing in a different packages,

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

and you have no import in your Main.java.

By default the visibility is package private level.

CodePudding user response:

You really should properly package your classes, but:

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
  • Related