6

我有一个 Java 应用程序符合我想在 Ubuntu 和 SuSE 上安装的 jar 集合。我希望安装程序能够检查 JRE、注册文件关联并能够在卸载时加载网站。

我了解 Ubuntu 和 SuSE 基于不同的架构,那么有没有一致的方法来做到这一点?

有没有人对使用实用程序或阅读指南有建议,以帮助我实现我想要做的事情。

4

6 回答 6

10

为每个平台分发一个debrpm将为 IMO 提供最佳的用户体验和系统集成(检查 JRE 依赖关系、注册文件关联等)。对于基于 debian 的发行版,请查看为 Ubuntu 打包 Java 应用程序(此处提供幻灯片)。要构建一个rpm,请查看RPM HowtoOpenSUSE 的开发和打包 Java 软件

如果您不想为每个平台构建软件包,我建议分发安装程序,例如使用IzPack。该工具允许生成独特的跨平台安装程序,提供本地集成,高度可定制,涵盖卸载部分,并且安装程序的生成可以轻松包含在自动构建(基于 Ant 或 Maven)中。这真是一个不错的工具。它有重要的参考资料(Sun Microsystems、JBoss/RedHat、Scala 语言项目、一些 ObjectWeb/OW2 项目、XWiki 等)。

于 2010-01-06T22:19:42.560 回答
3

试试这个。此安装程序适用于大多数 Linux 发行版。

将您的 jar 文件插入 .tar.gz 存档。如果你想在程序菜单上创建一个菜单项,请创建一个“YOUR PROGRAM.desktop”文件并将此脚本放入其中

[Desktop Entry]
Comment=YOUR COMMENT
Name=YOUR PROGRAM
#(Must same as .desktop file's name)
Exec=java -jar "(Path to Extracted folder)/myapp.jar"
Terminal=false
Type=Application
Icon=(Path to Extracted folder)/myapp.png
Categories=Development

好的,现在您也可以将其放入 .tar.gz 存档中。

现在您必须创建“install.sh”文件(文件名并不重要,它也可以不带扩展名 - .sh)

这是代码

#!/bin/bash
if which java >/dev/null; then<
sudo tar xvfz YOUR PROGRAM.tar.gz -C /opt #(Path for Extract Files)
mkdir ~/.local/share/applications
sudo tar xvfz DESKTOP.tar.gz -C ~/.local/share/applications
echo "Program installed.!"
else
    echo "JRE Not Installed..!"
fi
read
exit

将所有 3 个文件放在同一个文件夹中,然后运行 ​​install.sh 文件(必须标记为可执行文件)

我希望这对任何人都有帮助。

于 2011-01-08T10:42:09.470 回答
2

如果您不想疏远用户,请做任何您需要做的事情,让用户使用该发行版的本地工具管理您的包(请参阅 Pascal Thivent 的回答)。对于 Ubuntu 和 SUSE,这意味着 deb 和 rpm 包。

作为用户,每当我需要使用自己的安装程序安装软件包时,我都会立即感到恼火。

于 2010-01-21T14:53:28.993 回答
2

您可以使用BitRock InstallBuilder,它允许您创建 GUI 安装程序、RPM 和 DEB 包。它可以执行您指定的操作(文件关联、启动网页等)。它是商业的,但我们为开源项目提供免费许可证,为小公司提供折扣

于 2010-01-21T14:30:47.300 回答
1

如果您正在寻找 GUI 安装程序,请查看InstallJammer 。否则,您可能会考虑为每个平台构建一个单独的本机安装程序。SuSE 和 DEB for Ubuntu 中的 RPM。InstallJammer 可以为您提供一个 GUI,如果您愿意,还可以在每个系统上注册本机包管理器。

于 2010-01-06T20:59:45.503 回答
0

我同样需要将 Java 应用程序打包为 Debian/Ubuntu deb 存档,但没有找到合适的指南,所以当我成功创建 deb 存档时,我编写了自己的指南

基本上,我所做的是创建一个 Bash 脚本,在文件层次结构中安排 .class 文件等,为 .deb 存档做好准备,编写一个可执行脚本来启动打包的程序,处理 .desktop 文件以进行 GUI 处理,然后运行dpkg --build 在整个事情上。此外,重要的一步是对生成的 .deb 文件运行 lintian -i 以确保您遵守所有标准和政策。

于 2013-03-01T15:28:28.660 回答