我有一个编译成一组JAR文件的Java应用程序,我想在Ubuntu和SuSE上安装它。我希望安装程序能够检查JRE,注册文件关联,并能够在卸载时加载网站。
我知道Ubuntu和SuSE基于不同的架构,那么有没有一种一致的方法来做到这一点?
有没有人可以给我建议使用哪些实用工具或指南来帮助我实现我的目标。
我知道Ubuntu和SuSE基于不同的架构,那么有没有一种一致的方法来做到这一点?
有没有人可以给我建议使用哪些实用工具或指南来帮助我实现我的目标。
deb
和rpm
将提供最佳的用户体验和系统集成(检查JRE依赖性,注册文件关联等)。对于基于Debian的发行版,请参考Ubuntu上打包Java应用程序(幻灯片可在这里找到)。要构建rpm
,请查看RPM Howto或openSUSE上的Java软件开发和打包。请尝试以下方法。此安装程序适用于大多数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
把所有三个文件放在同一个文件夹中,然后运行install.sh文件(必须标记为可执行)
希望这对任何人有所帮助。
如果你不想疏远用户,就尽可能让用户使用该发行版本身的工具来管理您的软件包(参见Pascal Thivent的答案)。对于Ubuntu和SUSE,这意味着使用deb和rpm软件包。
作为用户,每当我需要使用它们自己的安装程序安装软件包时,我立即感到恼怒。
我有一个将Java应用程序打包成Debian/Ubuntu deb归档文件的需求,但是没有找到合适的指南。所以当我成功创建了deb归档文件后,我写了自己的指南。
基本上,我所做的就是创建一个Bash脚本,将.class文件等排列在一个文件层次结构中,准备好一个.deb归档文件,编写一个可执行脚本来启动打包的程序,处理GUI处理的.desktop文件,然后运行dpkg --build命令。此外,一个重要的步骤是,在生成的.deb文件上运行lintian -i,以确保您遵守所有标准和政策。