java 有没有能运行一次后,删除自身的方法。为什么好多人说删除自身就是在写病毒...

问题描述

java 有没有能运行一次后,删除自身的方法。为什么好多人说删除自身就是在写病毒...

我希望做一个能自动获得服务器上新版本并自我更新的程序。当检测到有新版本就用
新版本替换自身。程序是个jar文件,目前的问题是,如何替换。

我能想到的方法:主程序名为a.jar,因为正在运行的程序不能被删除替换,
所以先将新版本下载,名为aTemp.jar,运行aTemp.jar。a.jar关闭自身,aTemp.jar删除
a.jar,复制aTemp.jar并名为a.jar。最后,删除自身。即aTemp.jar只运行一次。

当然,一定有更好的方法,望有人指点。

解决方案

可以把当前运行的程序改名或者在同驱动器移动,这是不限制的。然后就可以下载你的软件,启动它,再关闭自身,让新程序删除老程序完成升级。

时间: 2024-08-03 20:19:49

java 有没有能运行一次后,删除自身的方法。为什么好多人说删除自身就是在写病毒...的相关文章

java项目-Java项目如何打包运行?

问题描述 Java项目如何打包运行? 要答辩了,老师不一样我们带着eclipse去发布项目,再在浏览器输入网址那样运行项目.说可以把项目打包执行.然而我并不会,哪位大神可以详细谅解一下打包执行过程?万分感谢! 解决方案 这个不是打包,而是部署,你需要安装tomcat,然后把你的程序拷贝上去,配置好数据库. 解决方案二: java web项目部署操作:也就是目标机器上需要具备跟本机一样的环境,包括编译后的java项目文件,jdk,tomcate,数据库. 1 项目安装文件,也就是你的web项目的w

连接池-关于Java服务长时间运行出现各种bug问题,可能运行几天没问题,但是运行十几天就会出现各种bug

问题描述 关于Java服务长时间运行出现各种bug问题,可能运行几天没问题,但是运行十几天就会出现各种bug 服务使用的是ScheduledThreadPoolExecuto定时任务,有使用到全局变量,数据库连接池使用的是c3p0,我感觉出现问题的原因可能就是这三个里哪个导致的,程序是没问题的,就是运行久了就出现各种问题了,而且很莫明奇妙,比如本来是好好的运行久了日志中的中文从那个时刻起往后全都乱码了.请问这是怎么回事? 定时任务: ScheduledThreadPoolExecutor boo

关于import java.until程序已经运行,但是没用内容显示

问题描述 关于import java.until程序已经运行,但是没用内容显示 昨天编写程序,突然发现import java.until.前面总是有黄色的感叹号,提示我import java.until. is never used,但是我运行程序后,控制台死活显示不出内容,但是停止键又是亮着的,Scanner sc=new Scanner(System.in)以下的语句,都无法显示,不知道怎么回事,第一次遇见,没有提示error,没有红色感叹号,有谁能帮忙解决啊,停止重启eclipse,或者重

java在linux里设置环境变量后,提示没有那个目录?

问题描述 java在linux里设置环境变量后,提示没有那个目录? 我是放在./opt下的,所属人, 所属组也都设置完了, 请大牛.这是怎么回事,在线等 解决方案 root@ubuntu-2:~# cd /opt/java/jdk1.7 root@ubuntu-2:/opt/java/jdk1.7# cd bin root@ubuntu-2:/opt/java/jdk1.7/bin# ls appletviewer jarsigner javap jdb jps jvisualvm rmic t

为什么java源文件中有两个类编译后只产生一个类文件

问题描述 classdemoA{publicstaticvoidmain(String[]args){demoad=newdemoa();d.getmoney();}voidgetmoney(){System.out.println("package123123123");}}classdemoa{voidgetmoney(){System.out.println("package1111");}}为什么java源文件中有两个类编译后只产生一个类文件demoA,且运

java程序在eclipse运行下出错,但是在cmd可以正常运行,求大神!

问题描述 java程序在eclipse运行下出错,但是在cmd可以正常运行,求大神! 源代码: class Person{ private String name; private String location; Person(String name){ this.name = name; location = "beijing"; } Person(String name,String location){ this.name = name; this.location = loc

用java+sql server2000做的系统,怎样用java+sql server 2005运行

问题描述 用java+sql server2000做的系统,怎样用java+sql server 2005运行 我在网上下载了一个图书馆管理系统,是用java+sql server2000做的,但是怎样用java+sql server 2005运行呢? 运行的时候出现了如下的错误: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket. at com.microsof

java中当父类变量值改变后,子类在通过super调用该变量时,该值是否还是初始化的值?

问题描述 java中当父类变量值改变后,子类在通过super调用该变量时,该值是否还是初始化的值? class A{ int x=2; public void setX(int i){ x=i; } public void printa(){ System.out.println(x); } } class B extends A{ int x=100; void printb(){ //super.x=super.x+10; System.out.println("super.x:"

java 字符串 报错-java程序在eclipse运行正确,在牛客网测试界面运行报错

问题描述 java程序在eclipse运行正确,在牛客网测试界面运行报错 在eclipse可以正常运行,在牛客网的测试里报错:"运行错误:请检查是否存在数组越界非法访问,野指针乱访问,空指针乱访问等情况." 题目:连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组: ?长度不是8整数倍的字符串请在后面补数字0,空字符串不处理. 输入例子: abc 123456789 输出例子: abc00000 12345678 90000000 import java.util.Sca