`

应用程序打包jar后实现随系统开机启动.

 
阅读更多
我们写好的应用程序打包后,怎么让它随系统启动就运行呢?最简单最绿色的方法是把jar包拷贝到开始菜单中的“启动”文件夹下,这样系统启动后程序就可以自动运行了。一般软件中选项设置有“随系统启动”这一项,拷贝的工作肯定由代码实现了。但是jar包路径如果动态的改变了那就有点麻烦了,

下面的代码可以简单的实现程序随系统启动...
Java代码 
  1. private final static String DIR = "C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动\\";  
  2.   
  3. //解决路径中空格问题  
  4. private static String formatPath(String path){  
  5.       
  6.     if(path==nullreturn "";  
  7.       
  8.     return path.replaceAll(" ""\" \"");  
  9.       
  10. }  
  11. //设置是否随系统启动  
  12. public static void setRunBySys(boolean b){  
  13.     File file = new File(DIR,JarTool.getJarName());  
  14.     Runtime run = Runtime.getRuntime();  
  15.     try {  
  16.         if (b) {  
  17.             if (!file.exists()) {  
  18.                 run.exec("cmd /c copy " + formatPath(JarTool.getJarPath())+ " " + formatPath(DIR));  
  19.             }  
  20.         } else {  
  21.             if (file.exists()) {  
  22.                 run.exec("cmd /c del " + formatPath(file.getAbsolutePath()));  
  23.             }  
  24.         }  
  25.     } catch (Exception e) {  
  26.         // TODO: handle exception  
  27.     }  
  28. }  


JarTool是自己封装的专门处理Jar包相关信息的类... 

不知道为什么不能用IO流来拷贝,难道文件在运行过程中不许进行读写操作。 

其实还有巧妙的方法是在“启动”目录下创建个bat批处理文件指向jar包。 

但是程序每次启动的时候会弹出命令窗口,虽然是瞬间一闪而过,但就是看起来不爽。 

找了些资料,可以用vb脚本来处理:
 

createobject("wscript.shell").run "XXX.bat",0 

将上面的代码保存为vbs格式的文件即可,其中"XXX.bat"是启动jar的批处理,"0"表示隐藏命令行窗口。 

现在可以总结一下,先创建一个启动jar的bat文件,然后再“启动”目录下创建一个指向这个bat的vbs脚本文件,这些可以代码实现的,取消随系统启动只要删除脚本就可以了。
引用通告地址: http://tmsoft.lsxy.com/trackback.php?tbID=947&extra=40f738
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics