代码之家  ›  专栏  ›  技术社区  ›  Burkhard

外置罐子放在哪里?[副本]

  •  46
  • Burkhard  · 技术社区  · 17 年前

    我使用Eclipse(3.4),我的类编译时没有警告或错误。 我的项目使用一个外部jar文件。

    java.lang.NoClassDefFoundError 从另一个项目(不在Eclipse中)使用此类时?

    编辑:这个问题不是关于在Eclipse中导入JAR,而是在Eclipse之外使用JAR。

    9 回复  |  直到 10 年前
        1
  •  60
  •   Damienknight    13 年前

    如果您想在Eclipse项目中包含一个JAR文件,您通常会在项目文件夹中创建一个“lib”文件夹,并将该文件放在其中。然后,您需要告诉eclipse将其包含在类路径中,以便您的代码将在eclipse中编译和运行。

    为此:
    -进入项目的属性

    -选择窗口中心部分的“库”选项卡

    -选择JAR,单击OK,然后在properties窗口中再次单击OK。

    您的代码现在将编译并运行。

        2
  •  24
  •   Simon    17 年前

    把它放在你的口袋里 jre/lib/ext 文件夹

    关于类路径的所有说法都是正确的,但对于它来说,这是一个始终如一且明智的地方。

        3
  •  7
  •   Jon Skeet    17 年前

    把它放在哪里并不重要,但您需要配置其他非Eclipse项目,将外部JAR放在其类路径中,或者使用extensions目录机制(如果必须的话)。(这更容易,但可以说更明确。)

        4
  •  6
  •   user3132194    12 年前

    Installed extensions .

    从Java6开始,扩展JAR文件也可以放置在独立于任何特定JRE的位置,这样系统上安装的所有JRE都可以共享扩展。

        5
  •  1
  •   Community Mohan Dere    9 年前

    -classpath 选项,位于不包含在eclipse工作区中的文件夹中,即完全不依赖于eclipse的文件夹中。

    警告,您不能使用 java -jar -cp 选择权( see this question

        6
  •  0
  •   guerda    17 年前

    我把它放进一个新文件夹。此文件夹必须包含在生成路径中。 不管它是在日食中还是在日食之外。Eclipse有一个特定于项目的构建路径,它将该路径传递给javac。 如果要在Eclipse之外执行javac,必须手动传递构建路径。

        7
  •  0
  •   javamonkey79    17 年前

        8
  •  0
  •   JeeBee    17 年前

    正如James Camfield所写,Eclipse中有一个罐子。

    然后,在构建(Ant、Maven、手动)分发时,确保jar文件包含在应用程序jar、war、ear或任何文件中,并且任何启动脚本都使用java的-classpath命令行选项将其包含在类路径中,正如VonC所写的那样。

    不要担心把JAR放在java extensions文件夹中,这样做只会让您在将代码发送给第三方使用时忘记它,因为他们不会在最后设置它。

        9
  •  0
  •   Robin    17 年前

    创建一个共享的lib目录,并将这个jar和您可能有的任何其他公共jars文件放在那里。如果您使用的是Maven,那么您已经以本地回购的形式拥有了它。

    在Eclipse中,为这个目录创建一个classpath变量,然后使用它在项目中引用jar文件。如果你有多个符合这些条件的项目,这将使生活更加轻松。如果从本地驱动器转到网络驱动器,还可以轻松更改根目录的位置。

    在外部应用程序中,您还将从其在应用程序类路径上的共享位置包含此jar文件。