java-将外部罐子放在哪里?

这个问题已经在这里有了答案:

  • 如何在Eclipse中导入jar 9个答案

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

从另一个项目(不在Eclipse中)使用此类时,为了不获取294502271632539797504,我需要将该外部jar文件放在哪里?

我可以将jar提取到项目文件夹中,但是感觉不对。

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

Burkhard asked 2020-06-29T23:52:40Z
9个解决方案
57 votes

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

要做到这一点:
-进入项目的属性
-在左侧栏中选择“ Java构建路径”
-选择窗口中心部分的“库”标签
-单击“添加JAR”按钮-这将为您提供eclipse中的项目列表-展开项目并进入lib文件夹-jar将在其中。
-选择JAR,单击“确定”,然后再次从属性窗口中退出“确定”。

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

James Camfield answered 2020-06-29T23:53:25Z
20 votes

把它放在你的jre/lib/ext文件夹中

关于类路径的所有描述都是正确的,但这是它存在的一致而明智的地方。

您可以通过在Windows上查看JAVA_HOME环境变量来找到jre文件夹。

Simon answered 2020-06-29T23:53:54Z
7 votes

放置在什么位置都没关系,但是您需要配置另一个非Eclipse项目,以将外部jar放入其类路径-或根据需要使用扩展目录机制。 (这比较容易,但是将其明确表示会更好。)

Jon Skeet answered 2020-06-29T23:54:14Z
5 votes

西蒙的答案似乎是最好的,但现在有点过时了。 谷歌搜索此Oracle文档安装扩展。

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

它说对于Windows,您应该将扩展名放在%SystemRoot%\ Sun \ Java \ lib \ ext此处。

user3132194 answered 2020-06-29T23:54:43Z
1 votes

您只需要使用java -jar选项在不包含在Eclipse工作区中的文件夹(即完全不依赖于Eclipse)中引用它即可。

警告,如果您使用-cp选项引用外部jar,则无法使用java -jar执行其他项目(请参阅此问题)

VonC answered 2020-06-29T23:55:08Z
0 votes

我将其放入新文件夹中。 该文件夹必须包含在构建路径中。无论是在Eclipse还是外部,都没有关系。 Eclipse具有项目特定的构建路径,并将该路径传递给javac。如果要在Eclipse之外执行javac,则必须手动传递构建路径。

guerda answered 2020-06-29T23:55:28Z
0 votes

我知道这并不是您要问的,但是您是否考虑过使用Maven? 在这种情况下,某些插件(例如Assembly)可能会有所帮助。

javamonkey79 answered 2020-06-29T23:55:48Z
0 votes

就像詹姆斯·卡姆菲尔德(James Camfield)所写的那样,在Eclipse中放一个罐子。

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

不必担心将jars粘贴在java extensions文件夹中,所有要做的就是让您在将代码发送给第三方使用时忘记它,因为他们不会在最后设置它 。

JeeBee answered 2020-06-29T23:56:17Z
0 votes

创建一个共享的lib目录,并将此jar以及您可能在其中拥有的所有其他常见jar文件放置在此处。 如果您正在使用Maven,则已经以本地存储库的形式提供了它。

在Eclipse中,为此目录创建一个classpath变量,然后使用它来引用项目中的jar文件。 如果您有多个满足这些条件的项目,它将使工作变得更加轻松。 如果您从本地驱动器转到网络驱动器,也可以轻松更改根目录的位置。

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

Robin answered 2020-06-29T23:56:47Z
translate from https://stackoverflow.com:/questions/325524/where-to-put-the-external-jars