【问题标题】:How to Use External Class Files in an Eclipse Project如何在 Eclipse 项目中使用外部类文件
【发布时间】:2011-01-11 11:44:39
【问题描述】:

我的讲师没有为我们提供 .java 文件作为教程。我的问题是,我将如何在我的 eclipse 项目中使用他的类文件,并消除以下错误?

错误:

  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

这是我的代码:

 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");
  }
 }

这是我的文件夹结构:
随机 /
*/ 斌
* / lec / utils /InputReader
* /src/randomIt.java

注意:他的类文件是“InputReader.class”

【问题讨论】:

    标签: java eclipse class


    【解决方案1】:

    我玩过 Eclipse 来解决这个问题。试一试:

    1. 创建以下目录结构(您的桌面即可)classes/lec/utils
    2. 将 InputReader 类文件放在 utils 目录中。
    3. 删除对当前构建路径中的 InputReader 的所有引用。
    4. 使用(右键单击项目)属性->Java 构建路径->库选择“添加外部类文件夹”并选择您在桌面上创建的“类”文件夹,然后单击确定。
    5. 现在,在项目文件夹的“引用库”中,您应该有一个名为“类”的库和一个名为“lec.utils”的包路径,其中包含 InputReader 类。
    6. 您可以在自己的类中使用“import lec.utils.InputReader”来使用该类。

    希望有所帮助。

    【讨论】:

      【解决方案2】:

      在工程配置菜单中,有一个“Build Path->Configure Build Path”菜单项。在其中,可以选择添加“外部类文件夹”。将所有提供的类文件放在一个文件夹中,并将该文件夹添加到构建路径中。

      【讨论】:

      • 我已将 lec 文件夹放在 Random 文件夹之外,并采取了您所说的步骤,我如何能够在我的 randomIt.java 文件中引用它们?导入 lec/utils.InputReader、导入 utils.InputReader 还是别的什么?
      • 这个 InputReader 的包名是什么?如果是 utils,那么你“导入 utils.InputReader”。您永远不会在导入语句中使用斜杠。
      【解决方案3】:

      您应该进行以下更改

      1. 修改您的 randomIt 类以具有以下包含行(无 lecs/ ) 导入 utils.InputReader

      2. 将文件名修改为 rnadmIt.java(而不是 randomit.java)。类名和文件名必须完全相同。同样根据 Sun 约定,该类应以大写字母开头

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

      【讨论】:

      • 你的第二点完全没有意义,他问的是如何在 Eclipse 中构建它,而不是从命令行,所以第三点也没有帮助。
      猜你喜欢
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-30
      • 2014-09-01
      • 1970-01-01
      相关资源
      最近更新 更多