当前位置: 首页 > 面试题库 >

Java打包/构建通用技术Jar文件

须志新
2023-03-14
问题内容

我浏览了该网站的所有常见帖子,但我的问题略有不同:

打包具有许多其他jar文件作为依赖关系的简单Java应用程序的最佳实践是什么?

例如:我有foo.java,其中有一个main,以及从foo.java访问的foo1.java,foo2.java。我在我的Eclipse构建路径上使用的是log4j.jar,mysql.jar。

现在,我正在使用ant,可以很好地html" target="_blank">构建它。我要做的是编写一个引用所有类路径和log4j信息的简单.sh脚本。但这意味着我必须将所有这些罐子给他们,并且它们必须放在正确的位置。我希望能够说“
java -jar foo.jar”并使其在任何计算机上运行而不必传输任何其他文件。

也许.jar并不是最好的方法。我只希望能够将文件提供给不知道如何设置类路径和所有内容并使其能够运行的某人。

我也很好奇什么是最佳实践。您通常只给某人一个jar并给他们一个所有依赖项jar的zip文件,并告诉他们将其放在类路径上吗?

您是否以某种方式使.rpm?

我对MAVEN不熟悉,但是如果那是最好的方法,我将做一个教程。现在我使用蚂蚁。


问题答案:

我个人不喜欢这样将所有依赖项转储到单个jar文件中。这使得查看二进制发行版的人们很难弄清楚程序真正依赖什么。

我更喜欢做的是用我的jar及其所有依赖项创建一个lib目录。Class-Path:在manifest.mf中使用指定类路径。Main- Class:在清单中指定主类。然后使用java -jar my.jar运行该应用程序。您只需要将您的类及其所有依赖性打包在zip或tar中。

Maven确实有一项任务是自动执行清单创建,还有一项任务是自动执行档案创建。但是,对于具有单个工件和很少更改的第3方库的简单项目,它很容易在ant脚本中构建。



 类似资料:
  • HTSJDK是一个用于访问常见文件格式(如SAM和VCF)的库。我想构建HTSJDK JAR。在文档页面中说我必须为此使用Ant。所以我安装了Ant并运行以下命令: ant htsjdk-jar [javac]用法:javac [javac]use-help获取可能选项列表 生成失败 build.xml文件有问题。这里是文件的开头: 拜托,有人能告诉我该怎么做才能解决这个问题吗?

  • 问题内容: 我有一个文件夹结构 当我运行以下命令“ jar cvf asd.jar * .class”时,它将为jar提供所有类文件。但是没有生成文件夹结构。所有的类文件都必须在“ com.cdy / ws”下,但是所有的类都在同一级别的META-INF中。谁能告诉我生成包结构的命令是什么? 谢谢 问题答案: 您需要在文件的 根目录 开始创建JAR 。 因此,例如: 假定包含该目录。 仅供参考,如

  • 我创建了一个ant构建文件,将我的java src编译成一个.jar文件。它使用外部jar文件。

  • 问题内容: 我刚刚“继承”了一个Java项目,而不是来自Java背景,有时我会有点迷失。Eclipse用于在开发过程中调试和运行应用程序。我已经通过Eclipse成功创建了一个.jar文件,该文件“包含”了所有必需的外部jar,例如Log4J,xmlrpc- server等。然后可以使用以下命令成功运行此大.jar: 我的下一步是使用Ant(版本1.7.1)自动进行构建,因此我不必参与Eclips

  • 我在Eclipse中创建了一个项目,该项目空间中的文件夹中有图像文件。 我一整天都在用它创建. jars,但现在我不知何故把它搞砸了。 我正在测试如果我从项目中删除了图像文件会发生什么,但它显然不起作用(正如我预期的那样)。但当我把文件复制回来并试图重新打包项目时,它仍然像我没有图像文件时一样。。我可以清楚地看到,图像没有被打包到罐子里,因为。jar文件只有200kb,而带有图像的jar文件只有3

  • 我有个问题希望有人能帮我解决。 我有两个java项目,其中一个我们将称之为CORE,它包含一组通用功能的类,并向我们的DB提供hibernate接口/DAO等。 其他项目需要CORE以便与我们的DB交互并使用公共的CORE功能。 现在,我已经使用Gradle创建了一个Jar文件,并通过IDE将该Jar文件导入到其他项目中,所有内容都可以正确编译。 现在我明白了,当创建一个Jar文件时,您需要提供一