How to Use External Class Files in an Eclipse Proj

2020-03-26 05:08发布

My lecturer didn't provide us with the .java files for a tutorial. My question is, how would i use his class files in my eclipse project, and defeat the following error?

Error:

  Exception in thread "main" java.lang.NoClassDefFoundError: lec/utils/InputReader
 at randomIt.main(randomIt.java:17)
    Caused by: java.lang.ClassNotFoundException: lec.utils.InputReader
     at java.net.URLClassLoader$1.run(Unknown Source)
     at java.security.AccessController.doPrivileged(Native Method)
     at java.net.URLClassLoader.findClass(Unknown Source)
     at java.lang.ClassLoader.loadClass(Unknown Source)
            at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
     at java.lang.ClassLoader.loadClass(Unknown Source)
     ... 1 more

Here is my code:

 import java.util.Random;
    import lec/utils.InputReader;

    public class randomIt {

 public static void main(String[] args) {
  Random generator = new Random();
  InputReader myReader = new InputReader();
  //Pick a number randomly between 1 and 10!
   int number = generator.nextInt(10)+1;
  //Ask user to guess...!
   System.out.println("Take a guess (1 to 10)");
   if (number == myReader.readInt()){
    System.out.println("You win");
   }
   else {
    System.out.println("It was " + number + ", tough Luck");
  }
 }

And here is my Folder Structure:
Random /
*/ bin
* / lec / utils /InputReader
* / src / randomIt.java

Note: his class file is "InputReader.class"

3条回答
Fickle 薄情
2楼-- · 2020-03-26 05:36

I've had a play with Eclipse to work this one out. Give the following a go:

  1. Create the following directory structure (your desktop will do) classes/lec/utils
  2. Place the InputReader class file in the utils directory.
  3. Remove any references you have to InputReader you currently have in your build path.
  4. Using (right click on project) Properties->Java Build Path->Libraries select the 'Add external class folder' and select the 'classes' folder you created on your desktop and click OK.
  5. Now in the 'Referenced Libraries' in the project folder you should have one called 'classes' and a package path under that called 'lec.utils' which contains the InputReader class.
  6. You can use that class using 'import lec.utils.InputReader' in you own class.

Hope that Helps.

查看更多
淡お忘
3楼-- · 2020-03-26 05:38

In the project configuration menu, there is a "Build Path->Configure Build Path" menu item. Within that, there is an option to add an "external class folder". Put all the provided class files in a folder, and add that folder to the build path.

查看更多
兄弟一词,经得起流年.
4楼-- · 2020-03-26 05:53

You should make the following changes

  1. Modify your randomIt class to have following include line (no lecs/ ) import utils.InputReader

  2. Modify the filename as rnadmIt.java (and not randomit.java) . The class name and fie name has to be exactly same. Also per Sun convention the class should start with a capital letter

  3. $ cd Random $ javac -classpath ./lec src/randomIt.java

查看更多
登录 后发表回答