锁定老帖子 主题:应用程序打包jar后实现随系统开机启动
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (4)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-23
最后修改:2011-02-18
我们写好的应用程序打包后,怎么让它随系统启动就运行呢?最简单最绿色的方法是把jar包拷贝到开始菜单中的“启动”文件夹下,这样系统启动后程序就可以自动运行了。一般软件中选项设置有“随系统启动”这一项,拷贝的工作肯定由代码实现了。但是jar包路径如果动态的改变了那就有点麻烦了,那得必须获取动态的jar包路径信息。
下面的代码可以简单的实现程序随系统启动... private final static String DIR = "C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动\\"; //解决路径中空格问题 private static String formatPath(String path){ if(path==null) return ""; return path.replaceAll(" ", "\" \""); } //设置是否随系统启动 public static void setRunBySys(boolean b){ File file = new File(DIR,JarTool.getJarName()); Runtime run = Runtime.getRuntime(); try { if (b) { if (!file.exists()) { run.exec("cmd /c copy " + formatPath(JarTool.getJarPath())+ " " + formatPath(DIR)); } } else { if (file.exists()) { run.exec("cmd /c del " + formatPath(file.getAbsolutePath())); } } } catch (Exception e) { // TODO: handle exception } } JarTool是自己封装的专门处理Jar包相关信息的类... 不知道为什么不能用IO流来拷贝,难道文件在运行过程中不许进行读写操作。 其实还有巧妙的方法是在“启动”目录下创建个bat批处理文件指向jar包。 但是程序每次启动的时候会弹出命令窗口,虽然是瞬间一闪而过,但就是看起来不爽。 找了些资料,可以用vb脚本来处理: createobject("wscript.shell").run "XXX.bat",0 将上面的代码保存为vbs格式的文件即可,其中"XXX.bat"是启动jar的批处理,"0"表示隐藏命令行窗口。 现在可以总结一下,先创建一个启动jar的bat文件,然后再“启动”目录下创建一个指向这个bat的vbs脚本文件,这些可以代码实现的,取消随系统启动只要删除脚本就可以了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-01-24
写个批处理,建个windows任务计划就完事了,何必这么麻烦。
|
|
返回顶楼 | |
发表时间:2011-01-24
什么叫jar包随系统自动启动,干什么用的?没弄明白
|
|
返回顶楼 | |
发表时间:2011-01-24
yongsky 写道 写个批处理,建个windows任务计划就完事了,何必这么麻烦。
虽然能实现但是觉得不可取,比方说你做了个软件给人家用,难道还亲自为他添加任务计划。一般都是选项设置界面的对话框上有个“随系统启动”的复选框,选中后应用就可以随系统启动,不选中则取消。 如同下面: |
|
返回顶楼 | |
发表时间:2011-01-24
evanzzy 写道 什么叫jar包随系统自动启动,干什么用的?没弄明白
这个jar包是项目做好以后打包的结果,双击可以启动执行的。随系统自动启动就是电脑开机后他就自动运行,不需要人为打开。 |
|
返回顶楼 | |
发表时间:2011-01-24
我这两天也考虑写个程序,每天把我的代码备份一份呢,到点了自己备份一下...
|
|
返回顶楼 | |
发表时间:2011-01-25
kinganpo 写道 evanzzy 写道 什么叫jar包随系统自动启动,干什么用的?没弄明白
这个jar包是项目做好以后打包的结果,双击可以启动执行的。随系统自动启动就是电脑开机后他就自动运行,不需要人为打开。 双击jar打开的前提是客户机需要安装JDK,另外.jar类型文件打开模式为Java程序。 正确给用户的做法是用InstallShell或者类似的软件制作对应系统的安装包,安装包包括基本JRE、客户程序、程序相关资源等等。 |
|
返回顶楼 | |
发表时间:2011-01-25
有个工具叫installshield,用msi把jar文件放到scheduler里,可以设置的东西多了去了。
|
|
返回顶楼 | |
发表时间:2011-01-25
不能把程序做成exe的吗?
|
|
返回顶楼 | |
发表时间:2011-01-25
最后修改:2011-01-25
kinganpo 写道 不知道为什么不能用IO流来拷贝,难道文件在运行过程中不许进行读写操作。 这个地方我比较关注下,不知道你是写的是什么样子的? |
|
返回顶楼 | |