一、加到开机自动启动程序的注册表:

package com.zit;

import java.io.IOException;

public class Start {

    public static void ChangeStart(boolean isStartAtLogon) throws IOException{
String regKey = "HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run";
String myAppName = "notepad++";
String exePath = "D:\\Notepad++\\notepad++.exe";//开机启动程序本地目录
Runtime.getRuntime().exec("reg " + (isStartAtLogon?"add ":"delete ") + regKey + " /v "
+ myAppName + (isStartAtLogon?" /t reg_sz /d " + exePath:" /f"));
} public static void main(String[] args) {
try{
ChangeStart(true);
}catch(Exception e){
e.printStackTrace();
} } }

这里是把程序加到系统自动启动额外程序(非系统服务)的注册表,

用户必须登录系统才可以,如果不登陆,则不行,

如果要让windows开机,不登陆,就能自动启动,需要将这个程序放到系统服务注册表里

二、加到系统服务,实现自动启动

实现方法:使用第三方工具Java Service Wrapper

(还有微软自带的工具srvany,加到系统服务,但是貌似在windows7及之后版本不可以使用)

下载地址:https://wrapper.tanukisoftware.com/doc/english/download.jsp

Community社区版是免费的,Professional和Standard版本需要licence

windows 64位目前没有免费版,所以,我的电脑是64位,但下载的是32位版本(貌似实现了,有问题后面再说)

接下来需要做的是:

(1)新建一个文件夹Test,在里面新建四个文件夹:bin、conf、lib、logs

(2)有一个Java类,然后用Eclipse把他导出成jar包

package com.zit.controller;

public class Test {

    public static void main(String[] args) throws Exception{
for(int i = ; i < ; i++){
System.out.println(i);
} } }

把Test.java放在Test目录下,把它的jar包放在lib目录下(其实,只需要它的Test.jar就可以)

(3)下载包解压后

  a、 下载包src/bin/的App.bat.in,InstallApp-NT.bat.in,UninstallApp-NT.bat.in  和  bin/下的wrapper.exe    放在新建的bin目录下,把后缀.in去掉。

App.bat(可以直接运行程序),

InstallApp-NT.bat(安装成Windows服务),

UninstallApp-NT.bat(卸载Windows服务)】

  b、下载包lib目录下的wrapper.dll、wrapper.jar放到新建的lib下

  c、下载包src/conf下的wrapper.conf.in放到新建的conf下,把后缀.in去掉

(4)修改wrapper.conf

#电脑要有jdk环境
wrapper.java.command=%JAVA_HOME%/bin/java #这个不用改变
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp #lib包下的jar文件
wrapper.java.classpath.=../lib/wrapper.jar
wrapper.java.classpath.=../lib/Test.jar #lib目录
wrapper.java.library.path.=../lib #Test.java的完整路径(包含包名)
wrapper.app.parameter.=com.zit.controller.Test #服务名
wrapper.name=服务名
wrapper.displayname=显示服务名
wrapper.description=服务描述

(5)完成后图示:

  

Test目录

  

bin子目录:

  

conf子目录:

  

lib子目录:

  

logs子目录:

  运行时自动生成的一个log文件

运行:

1、点击bin文件夹下的App.bat

成功的效果:

2、点击bin文件夹下的InstallApp-NT.bat:将会注册为系统服务

  默认没有启动,手动启动一下,可以看到自动生成的log文件会有运行的日志

3、点击bin文件夹下的UninstallApp-NT.bat:将会卸载该服务

Java:程序开机自启动的更多相关文章

  1. android 程序开机自启动

    今天遇到程序开机自启动,然后查了一下,很简单,就记录一下. 开机自启动,一般我们是开启启动一个广播,然后在广播里启动Activity或者别的服务. 我们要做的很简单,就是在AndroidManifes ...

  2. Linux下的应用程序开机自启动

    Linux下的应用程序开机自启动,目前我知道的有2种: 1.将启动语句写到/etc/rc.local 2.在init.d放置启动脚本 第一种,很简单,直接写进去就行,比如说: /db/mongodb/ ...

  3. Linux设置程序开机自启动,系统命令chkconfig及linux /etc/rc.d/目录的详解

     整理了linux下程序开启几种方式,转载相关博客做统一记录 <linux程序设置开机自启动>转载自:https://www.cnblogs.com/flcz/p/7691532.html ...

  4. Linux设置程序开机自启动

    注意: 作者测试时,Linux版本为RedHat6,同时应用在CentOS6应该也可以(作者未实测,但有同事在CentOS6上使用可行),系统版本的不同,可能造成操作上的差异(CentOS7就与Cen ...

  5. CentOS 程序开机自启动方法总结

    1.把启动程序的命令添加到/etc/rc.d/rc.local文件中 CentOS系统下管理开机自启动的配置文件是/etc/rc.d/rc.local,所以只需编辑这个文件,在里面加入相应的启动命令即 ...

  6. win8程序开机自启动管理

    主要介绍利用系统自身的工具来管理开机自启动,而非第三方的工具,自己了解了,也写出来分享给大家@.·.@ 1.程序设置开机自启动 a. 打开计算机资源管理器-->进入"C:\Progra ...

  7. ubuntu16.04 程序开机自启动设置及启动优化

    使用过程中,为了方便使用,有一些程序需要开机时自启动应用,下面将介绍一下ubuntu16.04下程序的开机自启动设置方法. 1  建立一个可执行程序的运行脚本如 keepalive.sh.内部写入要执 ...

  8. Ubuntu 18.04 上设置桌面程序开机自启动

    需求 在新安装的 Ubuntu 18.04 系统上,将有些不可描述的程序开机之后自动启动 Startup Applications Preferences 打开 Startup Application ...

  9. WinForm 之 应用程序开机自启动设置方法

    一.原理 需要开机自启动的程序,需要将其启动程序的路径写到注册表中指定的文件夹下. 二.实现方式 方法1:在生成安装程序时配置: 方法2:在程序运行时动态配置. 三.在生成安装程序时配置 1.右击安装 ...

  10. CentOS设置程序开机自启动的方法

    转自:http://www.centos.bz/2011/09/centos-setup-process-startup-boot/ 在CentOS系统下,主要有两种方法设置自己安装的程序开机启动. ...

随机推荐

  1. 安装edusoho

    1.更新第三方源并升级系统 (CentOS默认的标准源里没有nginx软件包) 1.1.安装CentOS第三方yum源 #安装下载工具wget yum install wget #下载atomic y ...

  2. Nr,GenBank, RefSeq, UniProt 数据库的异同

    Nr,GenBank, RefSeq, UniProt 数据库的异同 有的文章在做DEG分析时,会把reads比对到RefSeq的转录组上.我也没搞清楚这和直接比对到常规转录组上有什么区别. 文章:S ...

  3. python cook 2

    迭代器 iterator  生成器 generator 1.手动遍历迭代器 2.代理迭代 解释:将迭代操作代理到容器内部的对象上 操作:使用__iter()__,  for 循环遍历对象时,会自动调用 ...

  4. HTTP Status 405 - HTTP method GET is not supported by this URL

    问题概述: 借助MyEclipse直接建立了一个Servlet类,每次访问这个Servlet都能访问.可自己建立一个Servlet为什么总提示:HTTP Status 405 - HTTP metho ...

  5. wdcp环境安装filephp扩展

    网址 :https://blog.csdn.net/m_nanle_xiaobudiu/article/details/80838424

  6. Nim or not Nim? HDU - 3032

    题意:给定n堆石子,两人轮流操作,每次选一堆石子,取任意石子或则将石子分成两个更小的堆(非0),取得最后一个石子的为胜. 题解:比较裸的SG定理,用sg定理打表,得到表1,2,4,3,5,6,8,7, ...

  7. raw_input 和input 区别

    raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收).而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它 ...

  8. 在word中粘贴的图片为什么显示不完整

    一.背景 整理系统测试说明文档,截得图片粘贴到word中显示不完整. 二.错误问题 问题:在word中粘贴的图片为什么显示不完整,如图所示: 三.分析问题: 原因是原来设置的行间距是固定值,图片也作一 ...

  9. 『计算机视觉』Mask-RCNN_推断网络其四:FPN和ROIAlign的耦合

    一.模块概述 上节的最后,我们进行了如下操作获取了有限的proposal, # [IMAGES_PER_GPU, num_rois, (y1, x1, y2, x2)] # IMAGES_PER_GP ...

  10. leetcode-algorithms-5 Longest Palindromic Substring

    leetcode-algorithms-5 Longest Palindromic Substring Given a string s, find the longest palindromic s ...