Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何制作一个完整的jar java项目_Java_Netbeans_Jar - Fatal编程技术网

如何制作一个完整的jar java项目

如何制作一个完整的jar java项目,java,netbeans,jar,Java,Netbeans,Jar,我有一个刚刚完成的JavaGUI项目。我使用netbeans来开发它,现在我想将整个项目打包到一个jar文件中。Netbeans似乎是独立完成这项工作的,但它并不包括所有的依赖项。i、 e.如果我有一些已经添加到项目的类路径中的图像,那么在执行jar时不会加载这些图像。当我运行控制台时,它在控制台中显示了一系列错误,因为它无法加载与项目关联的图像/文件 netbeans中是否有一个选项可以包含所有内容并让程序像从IDE运行一样运行?好的,所以我解决了这个问题,不是用netbeans而是用ecli

我有一个刚刚完成的JavaGUI项目。我使用netbeans来开发它,现在我想将整个项目打包到一个jar文件中。Netbeans似乎是独立完成这项工作的,但它并不包括所有的依赖项。i、 e.如果我有一些已经添加到项目的类路径中的图像,那么在执行jar时不会加载这些图像。当我运行控制台时,它在控制台中显示了一系列错误,因为它无法加载与项目关联的图像/文件


netbeans中是否有一个选项可以包含所有内容并让程序像从IDE运行一样运行?

好的,所以我解决了这个问题,不是用netbeans而是用eclipse。我将项目导入到eclipse中,在添加所有依赖项并验证它在eclipse中工作之后,我单击文件->导出…->java下拉菜单->runnable jar->选择文件名,然后从启动配置中选择主程序并保持其他选项为选中状态,然后按finish按钮,它应该可以工作

为我工作! 这并不是说Eclipse比Netbeans好,只是说它有一个更好的选项来生成jar文件

您可以使用project来实现这一点。或者,如果它是一个基于Netbeans Ant的项目,您可以使用一个脚本,这样Netbeans将在每次构建时为您执行此操作


Netbeans将包括src目录中包含的所有非java文件。您可以将所有资源复制到此目录,它们将绑定到您的jar文件中

此外,还可以将资源所在的目录作为附加源资源包含在内。在项目节点上单击鼠标右键,然后选择“属性”。选择源条目并单击添加文件夹,浏览并包括包含资源的顶级文件夹


如果资源是公共资源,在其他项目中共享,我倾向于创建一个库项目并将这些资源放在那里,将它们作为项目库包含在项目库下。

有关类似问题,请参见。您是如何在类路径中包含资源的?@MadProgrammer我右键单击项目名称->属性->库->运行->添加jar/文件夹,并将其添加到文件夹中。该文件夹实际上已经位于我的src文件夹中。Netbeans不会将库复制到Jar文件中。为了获得整个项目,您必须在您的Jar和任何库中分发几个Jar。不过,它可能会对您有所帮助。@Smac89 Netbeans将自动包含src目录中包含的所有资源。您可以尝试将这些资源添加到您的projects src目录中,或者将它们所在的目录作为附加源资源包含进来……如果您使用的是自定义类加载器,OneJar可能会很困难,单jar解决方案的问题是,如果您的jar包含相同的命名资源,如清单或配置文件,需要单独加载…只是说是的,我看到了这个选项,但正如我前面所说的,没有包含的文件夹实际上在src文件夹中。它也在类路径上,但Netbeans仍然没有以某种方式将其包含在导出的jar中。无论如何,我已经用eclipse解决了这个问题,但我仍然觉得Netbeans应该已经解决了这个问题worked@Smac89这些都是我用过的方法,我从来没有用过issues@Smac89愚蠢的问题,为什么要双重添加src目录?默认情况下,src已经在类路径中了…我没有双重添加它,我是说我将未包含的文件夹添加到了类路径中。这样我就可以通过简单地执行getClass.getResource/some-resource来使用其中的资源,而无需指定长路径name@Smac89啊,好吧,我的误解,听起来你好像在添加src两次。您是否将其添加为源代码而不是通过库?