我有一个罐子。我希望jar能够在运行时复制它自己。我知道windows在这方面可能会有问题。我该怎么做呢,还是我想太多了?
编辑:为了解释更多……
我正在写一个可重新打包的固件部署系统...http://code.google.com/p/heimdall-one-click/的想法是,来自XDA的只读存储器开发人员可以制作自己的产品,然后将其打包在跨平台可部署的一键打包中,几乎与部署固件一样简单。
我的程序通过自动化任务完成了大量的工作。我正在尝试自动打包一键部署的打包系统……给开发人员一个要填写的表单,该表单将更改标题信息,然后他们选择要部署的固件文件。我试着把所有的东西都放在一个罐子里。
发布于 2011-07-09 04:35:17
我相信你可以使用:
File file = new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());以获取指向.JAR文件的路径的引用。
然后你只需复制一份:
http://download.oracle.com/javase/tutorial/essential/io/copy.html
您的操作系统可能不允许这样做,但我认为它应该这样做。
发布于 2011-07-09 04:26:53
正如josh所说,如果你告诉我你为什么想要这样做是为了帮助你,那就太好了。
只回答你发布的内容,复制jar就是复制另一个文件。还有一个问题是,它可能会被操作系统(Windows)阻止;另一个问题是如何在计算机中定位它,以及运行该进程的用户是否具有所需的权限。
一旦这两个问题得到解决,这只是一个复制操作,操作系统不会关心复制的命令是来自于从文件运行的进程还是来自另一个进程。
编辑以在第一篇帖子中输入更改。
正如我之前所说的,复制文件最终是一个操作系统问题。如果您想在Windows中复制当前的jar,则jar不能被其他进程锁定,因此它成为操作系统问题而不是Java问题。
可能的解决方法:
https://stackoverflow.com/questions/6630062
复制相似问题