2012-02-21 32 views
0

我有一個Java應用程序需要實現啓動時啓動JAR啓動的安裝功能。UNIX平臺上的系統啓動文件夾/方法?

我可以通過在註冊表中輸入一個REG文件來做到這一點,但我怎麼能在UNIX平臺上做到這一點? Linux和Mac如果方法不同。

Linux和Mac有系統啓動文件夾嗎?

請記住,我需要以編程方式執行此操作,而不是通過系統首選項或類似的東西。

+0

你有什麼打算你的程序在啓動時怎麼辦? – Gabe 2012-02-21 04:32:01

+0

@Gabe註冊一個SystemTray圖標並檢查下一個任務何時運行。然後它會休眠一段時間,稍後再檢查更新。我很努力地設計它是低成本的資源明智的。這對Java很難。我喜歡Java,但長時間運行的後臺任務並不在它發光的地方。我想製作一個C應用程序來完成這一部分......但這隻能在Windows上運行,而且我無法弄清楚如何製作托盤圖標。 – bgroenks 2012-02-21 20:01:46

回答

1

在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)自舉子命令引導自身中的launchd讀取(8)從所述作業標準地點。

另請參閱

launchd(8), launchctl(1) 

所以,你應該調查launchctllaunchd,特別launchctl

+0

那些(launchctl,launchd,rc.common,...)文件或目錄? – bgroenks 2012-02-21 20:00:16

+0

'launchctl'和'launchd'是程序(參見'man launchctl'和'man launchd') - 啓動守護程序及其控制程序。 'rc.common'等是我的Mac上的'/ etc /'中的文件或腳本,它已經從早期版本的Mac OS X升級,所以它可能是一個結轉,但它可能是一個文件,清理新的Lion安裝。 – 2012-02-21 20:13:03

0

在Mac上我認爲它的launchd,在linux上它的init.d。他們是配置文件。

0

這就是我將如何在Ubuntu上做到這一點。

首先創建一個bash腳本來運行java應用程序,類似於。

#!/bin/bash 
java -jar "helloworld.jar" 

並保存它,在這種情況下,在/etc/init.d中稱爲'HELLOWORLD'。

需要使腳本可執行所以需要運行

chmod +x HELLOWORLD 

最後,使其運行在啓動時

update-rc.d HELLOWORLD defaults 
+0

是/etc/init.d目錄嗎? – bgroenks 2012-02-21 20:00:44

相關問題