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

我用蚀(3.4)和我类汇编没有警告或错误。我的项目使用一个外部罐子文件。

我需要把这种外部的罐子文件,以便在不让一个 java.lang.NoClassDefFoundError 使用此类时从另一个项目(不在蚀)?

我能提取的罐子到项目文件夹中,但是,这并不觉得正确的。

编辑:这个问题不是关于进口罐头食,但他们使用之外的食。

有帮助吗?

解决方案

如果你想要包括一个罐子的文件给你的日食的项目,则通常会创造一个'lib'的文件夹里面的项目文件夹,并且将文件放在那里。然后你需要告诉蚀,包括它在类路径,使你的代码汇编和运行的内部蚀。

做到这一点:
-进入的性质的项目
-选择'Java建立的道路'在左栏
-选择图书馆'tab中心窗口的一部分
击加入罐子的按钮-这会给你一个列表中的项目在日食-扩大项目并入lib文件夹-你的罐子里会在那里。
-选择的罐子,"确定"和"确定"的再次出的属性窗口。

你的代码现在将编制和运行。

其他提示

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

所说的一切有关的类路径是真实的,但这是一个一致和明智地方居住。

你可以找到你java运行环境的文件夹看JAVA_HOME环境变量。

不管太多,你把它,但是你需要配置其他非蚀项目投入的外部罐在其类路径或使用目录扩展机构,如果必须的。(这是更容易的,但它明确可以说是更好的。)

西蒙的答案似乎是最好的但是有点过时了。已经google搜索这Oracle医生 安装的扩展 .

作为Java6、扩罐子文件也可以放在一个位置,是独立于任何特定java运行环境,以便扩展可以共享所有Jre上安装的系统。

它说,对于Windows你应该把你的扩展这里%SystemRoot%\太阳\Java\lib\ext.

你只需要参考它的使用 -classpath 选项,在一个文件夹,其中不包括在一个日食的工作空间,即这不取决于蚀。

警告,你cannoy执行其他项目 java -jar 如果你参考你的外部罐 -cp 选项(看到这个问题)

我把它放入一个新的文件夹。这个文件夹已经被纳入建立的道路。不要紧,如果它在日食之内或之外。日蚀有一个项目的具体建立的路径,它通过这条道路的javac.如果你想要执行javac外的食,你必须通过建立的道路。

我知道这不正是你要求,但是有你认为使用专家?一些插件,如大会可能有助于这样的情形。

有一个罐内的食,作为詹姆斯Camfield已写的。

然后当你建立(蚂蚁,专家,手动)分发,确保罐子文件包括或应用程序内的罐子或战争或是耳朵或任何文件,和任何启动脚本,包括它在类路径上使用的类路径命令行的选择java,如VonC已写的。

不要担心坚持的罐子在java扩展文件夹,这一切都将做的就是让你忘掉它的时候送你的代码给第三方使用,因为他们不会具有它设置在他们的结束。

创建一个共用lib directory和地方这个罐子和其它任何共同的罐子文件您可能已经存在。如果您使用的是专家,那么你已经拥有它形式的地方回购。

在日食,创建一个类路径变为这个目录,然后用它来参考你的罐子文件在您的项目。如果你有多个项目,以满足这些条件,它将使生活更加容易。它也可以很容易地改变位置的根本目录如果你从一个地方驱动的网络之一。

在外部的应用程序,你也将包括这个罐子文件从其共同的位置上应用程序类路径。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top