我有一个 Java 应用程序(一个相当大的应用程序,具有许多外部 .jar 依赖项以及图像依赖项),我需要将其打包,以便有人可以双击运行。或者像这样简单的事情。
它使用Java Persistence,因此需要在Java 项目的Persistence.xml 文件中指定的sql 连接。
我该如何打包它?我在想:
- 安装过程应验证用户是否安装了 MySQL,如果没有,则指示他们安装
- 安装过程可能会要求用户输入任何数据库的凭据,然后我可以在运行时更新 Persistence.xml
这是我的两个想法...但我不确定是否有已知的解决方案来解决这个问题。任何帮助将不胜感激!
最佳答案
我认为您应该看看嵌入式数据库解决方案,例如 H2。此外,您还可以使用 Maven 的影子或 jar 插件打包您的应用程序,并激活 jar-with-dependencies 配置文件。
这将很好地消除您检查客户端计算机上运行的数据库服务器的麻烦,并且还为您提供了将应用程序捆绑在一个漂亮的 JAR 中的正确方法,尽管有点大。
Maven 是一个构建生态系统和工具集,专门用于构建 Java 应用程序和执行代码,并且通常可以执行您可以想象到的任何其他可能对您的代码执行的操作。
它有丰富的API用于开发插件,许多开发人员已经利用了这个功能。有许多插件可用于构建、启动和打包应用程序以及帮助您管理应用程序依赖项。
Maven 的阴影以 maven-shade-plugin
的形式出现,可用 here 。它的作用是帮助您从所有依赖项创建单个 JAR 文件。此外,还有 maven-jar-plugin
,它提供了 jar-with-dependencies 配置文件。也可以通过here访问。 .
另一方面,H2 是一个成熟的 RDBMS。这是网站:http://www.h2database.com/html/main.html ,和here是一个教程。
您可以在此处找到有关嵌入数据库的信息:
- How to embed H2 database into jar file delivered to the client?
- Embedding the Java h2 database programmatically
- h2 (embedded mode ) database files problem
我还建议您使用 H2/Hibernate/Spring 的组合,这是一个非常简单的设置,并为您提供真正丰富的功能和易于使用的 API。
希望这对你有帮助:)
关于java - 打包项目以进行部署 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12984683/