我有一个Java应用程序(一个非常大的应用程序,具有许多外部.jar依赖项以及对图像的依赖性),我需要打包它,以便有人可以双击运行,例如。或者类似的东西。
它使用Java Persistence,因此它需要一个SQL连接,该连接在Java Project的Persistence.xml文件中指定。
我该如何打包?我在想:
这是我的两个想法......但我不确定是否有一个已知的解决方案来解决这个问题。任何帮助将不胜感激!
答案 0 :(得分:1)
我认为你应该看看像H2这样的嵌入式数据库解决方案。此外,您可以使用maven的shadowing或jar插件打包应用程序,激活jar-with-dependencies配置文件。
这将很好地帮助您检查在客户端计算机上运行的数据库服务器,并且还将为您提供在一个不错的JAR中捆绑应用程序的正确方法,尽管有点大。
Maven是一个构建生态系统和工具集,专门用于构建Java应用程序和执行代码 - 通常可以执行任何您可以想象的可以对代码执行的操作。
它有一个用于开发插件的丰富API,许多开发人员已经利用了这个功能。有许多用于构建和启动的插件,用于打包应用程序以及帮助您管理应用程序依赖性。
Maven的阴影以maven-shade-plugin
的形式出现,可用here。它的作用是它可以帮助您从所有依赖项创建单个JAR文件。此外,还有maven-jar-plugin
提供了一个配置文件 jar-with-dependencies 。它也可以从here访问。
您可以在此处找到有关嵌入数据库的信息:
我还建议您使用H2 / Hibernate / Spring的组合,这是一个非常简单的设置,为您提供了非常丰富的功能和易于使用的API。
我希望这可以帮助你:)
答案 1 :(得分:0)
构建一个复杂的安装程序来检查许多依赖项,并在许多不同的平台上运行(我认为你想要的)很复杂。
我建议您查看安装程序生成器;见What is the best installation tool for java?
我在一些产品中看到的另一种替代方法是使用像Perl这样的脚本语言编写(非GUI)安装程序或配置程序。
答案 2 :(得分:0)
我使用ANT编写了一个安装程序,但没有GUI。另外,我使用了Iz Pack(很好的选择),所以我认为这取决于你想要它有多聪明,如果你应该使用它,或者非技术人员等等。