Java UNIX平台上的系统启动文件夹/方法?

Java UNIX平台上的系统启动文件夹/方法?,java,unix,boot,multiplatform,startupscript,Java,Unix,Boot,Multiplatform,Startupscript,我有一个Java应用程序,需要实现启动时启动JAR的安装功能 我可以在Windows上通过在注册表中输入一个REG文件来执行此操作,但在UNIX平台上如何执行此操作?如果方法不同,则使用Linux和Mac Linux和Mac是否有系统启动文件夹 请记住,我需要以编程方式执行此操作,而不是通过系统首选项或类似的方式。在Linux上,经典的方法是通过在相应的/etc/rcN.d/目录中添加脚本(其中N是表示“运行级别”的数字0-6)。我不确定这是否仍然是推荐的方式,但它通常仍然受到支持。这也适用于其

我有一个Java应用程序,需要实现启动时启动JAR的安装功能

我可以在Windows上通过在注册表中输入一个REG文件来执行此操作,但在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
,在linux上它的
init.d
。它们是配置文件。

我会在ubuntu上这样做

首先创建一个bash脚本来运行java应用程序,类似于

#!/bin/bash
java -jar "helloworld.jar"
并保存它,在本例中称为/etc/init.d中的“HELLOWORLD”

需要使脚本可执行,因此需要运行

chmod +x HELLOWORLD
最终使其在启动时运行

update-rc.d HELLOWORLD defaults

启动时,您的程序打算做什么?@Gabe注册一个SystemTray图标,并检查下一个任务何时运行。然后它将休眠一段时间,稍后再次检查更新。我真的很努力地将它设计成低成本的资源明智型。这对Java来说很难。我喜欢Java,但长期运行的后台任务并不是它的亮点。我想做一个C应用程序来做这个部分。。。但这只在Windows上有效,我不知道如何制作托盘图标。这些(launchctl、launchd、rc.common等)是文件还是目录?
launchctl
launchd
是程序(请参见
man launchctl
man launchd
)-启动守护进程及其控制程序
rc.common
etc是我的Mac电脑上
/etc/
中的文件或脚本,它是从早期版本的Mac OS X升级而来的,因此它可能是一个遗留文件,但它可能是全新Lion安装中的一个文件。