我有一个 Java 应用程序需要实现在启动时启动 JAR 的安装功能。
我可以通过在注册表中输入 REG 文件在 Window 上执行此操作,但是如何在 UNIX 平台上执行此操作?如果方法不同,Linux 和 Mac。
Linux 和 Mac 有系统启动文件夹吗?
请记住,我需要以编程方式执行此操作,而不是通过系统首选项或类似的方式。
我有一个 Java 应用程序需要实现在启动时启动 JAR 的安装功能。
我可以通过在注册表中输入 REG 文件在 Window 上执行此操作,但是如何在 UNIX 平台上执行此操作?如果方法不同,Linux 和 Mac。
Linux 和 Mac 有系统启动文件夹吗?
请记住,我需要以编程方式执行此操作,而不是通过系统首选项或类似的方式。
在 Linux 上,经典的方法是在适当的/etc/rcN.d/
目录中添加一个脚本(其中 N 是代表“运行级别”的数字 0-6)。我不确定这是否仍然是推荐的方式,但通常仍受支持。这也适用于其他主流 Unix 变体(Solaris、HP-UX、AIX)的微小变体。
在 Mac 上,您必须更加努力。文件/etc/rc.common
和是相关的/etc/rc.imaging
,/etc/rc.netboot
但没有/etc/rcN.d
目录。还有一个脚本rc
和另一个rc.local
。打字man rc
显示:
描述
rc.local
现在不受支持,并已替换为 launchd(8),它通过 launchctl(1) bootstrap 子命令引导自身,以从标准位置读取 launchd(8) 作业。也可以看看
launchd(8), launchctl(1)
因此,您应该调查launchctl
,launchd
尤其是launchctl
.
在 Mac 上我认为launchd
是init.d
. 它们是配置文件。
这就是我在ubuntu上的做法。
首先创建一个 bash 脚本来运行 java 应用程序,类似于。
#!/bin/bash
java -jar "helloworld.jar"
并保存它,在本例中称为 /etc/init.d 中的“HELLOWORLD”。
需要使脚本可执行所以需要运行
chmod +x HELLOWORLD
最后让它在启动时运行
update-rc.d HELLOWORLD defaults