1 下載javaService
http://javaservice.objectweb.org/
獲得windows的zip壓縮版,檔案名稱形如:JavaService-x.x.xx.zip,其中x.x.xx為版本號碼,目前的版本為JavaService-2.0.10.zip,請使用最新版。
2 安裝
將JavaService-2.0.10.zip解壓縮到c:/JavaService目錄下。(其實任意目錄下都可以)
3 編寫java類
import java.io.*;
import java.text.*;
import java.util.*;
public class Test
{
public static void main(String[] args) throws Exception
{
PrintWriter out=new PrintWriter(new FileWriter("d://javaTest//test.log",true),true);
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
out.println("服務啟動在:"+df.format(new Date()));
while(true)
{
out.println("現在時間是:"+df.format(new Date()));
Thread.sleep(1000*5);
}
}
}
儲存為任意目錄,如:"d:/JavaTest/Test.java",並編譯為Test.class;
4 進入c:/JavaService目錄,執行如下命令:
JavaService.exe -install MyService "%JAVA_HOME%"/jre/bin/server/jvm.dll -Djava.class.path="%JAVA_HOME%"/lib/tools.jar;d:/javaTest -start Test
其中-install 開關後面的參數是要添加的服務名;-start開關後面的參數是要啟動的java類名;這裡-Djava.class.path後面參數中的d:/javaTest是我的Test.class所在路徑,實際應用中應該添加你的CLASSPATH。
運行後控制台顯示“The MyService automatic service was successfully installed”表示安裝成功。
需要注意的問題:
(1) %JAVA_HOME%為JDK目錄,如果你沒有設定,這裡用jdk的絕對位址替代;
(2) -Djava.class.path是必須的,因為服務啟動的時候無法訪問系統的CLASSPATH變數,必須在這裡顯示指明;
(3) 服務添加成功以後,為自動啟動類型,如需更改,需要自行在服務管理員(services.msc)中修改。
5 測試:
運行net start MyService啟動服務;
檢查d:/javaTest/test.log檔案,資料一直在更新;
確認無誤後,運行net stop MyService關閉服務;
6 定製
在installJboss.bat中 加入classpath
set XMLBEANS_PATH=%OE_HOME%/lib/xmlbeans/jsr173_1.0_api.jar;%OE_HOME%/lib/xmlbeans/resolver.jar;%OE_HOME%/lib/xmlbeans/xbean.jar;%OE_HOME%/lib/xmlbeans/xbean_xpath.jar;%OE_HOME%/lib/xmlbeans/xmlpublic.jar
set OE_CLASS_PATH=%OE_HOME%/conf;%OE_HOME%/lib/pojo.jar;%OE_HOME%/lib/hibernate-mapping-1.0.jar;%OE_HOME%/lib/resource-model-1.0.jar;%OE_HOME%/lib/antlr-2.7.6.jar;%OE_HOME%/lib/jta-1.0.1B.jar;%OE_HOME%/lib/commons-collections-2.1.1.jar;%OE_HOME%/lib/commons-logging-1.0.4.jar;%OE_HOME%/lib/log4j.jar;%OE_HOME%/lib/dom4j-1.6.1.jar;%OE_HOME%/lib/jaxen-1.1.jar;%OE_HOME%/lib/icu4j-2.6.1.jar
加入classpath
set JBOSS_CLASSPATH=%OE_CLASS_PATH%;%XMLBEANS_PATH%;%JBOSS_CLASSPATH%
調用(加入制定的伺服器IP->-params -b 0.0.0.0 )
%2/bin/JBossService.exe -install JBoss %1/jre/bin/%3/jvm.dll -Djava.class.path=%1/lib/tools.jar;%2/bin/run.jar;%JBOSS_CLASSPATH% -start org.jboss.Main -params -b 0.0.0.0 -stop org.jboss.Main -method systemExit -current %2/bin %4 -overwrite
設定記憶體
SET MAXMEMORY=256
SET MINMEMORY=128
set JAVA_OPTS=%JAVA_OPTS% -Xms%MINMEMORY%m -Xmx%MAXMEMORY%m
rem With Sun JVMs reduce the RMI GCs to once per hour
set JAVA_OPTS=%JAVA_OPTS% -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000
"%jbossexe%" -install "%SVCNAME%" "%jvmdll%" -Djava.class.path="%JBOSS_CLASSPATH%" %JAVA_OPTS% -start org.jboss.Main -stop org.jboss.Main -method systemExit -out "%JBOSS_HOME%/bin/stdout.log" -err "%JBOSS_HOME%/bin/stderr.log" -current "%JBOSS_HOME%/bin" -auto -overwrite