我有一个罐子。我希望jar能够在运行时制作自己的副本。我理解Windows可能有问题。我该怎么做,还是我在思考呢?
编辑:解释一下......
我正在编写一个可重新打包的固件部署系统...... http://code.google.com/p/heimdall-one-click/我们的想法是,XDA的ROM开发人员可以创建自己的ROM开发人员,然后将其打包成跨平台可部署的一键打包系统。很容易就像部署固件一样。
我的程序通过自动执行任务来完成大量工作......我正在尝试自动化一键式可部署包装系统的打包....给开发人员一个表单来填写哪个会改变标题信息,然后他们选择要部署的固件文件。我试图把它全部放在一个罐子里。
答案 0 :(得分:2)
正如约什所说,如果你告诉为什么要这样做以帮助你,那就太好了。
只回答你发布的内容,复制jar只是复制另一个文件。存在可能被操作系统阻止的问题(Windows);另一个问题是如何在机器中找到它,以及运行该进程的用户是否具有所需的权限。
一旦解决了这两个问题,它只是一个复制操作,如果要复制的订单来自从文件或另一个文件运行的进程,操作系统也不会在意。
编辑第一篇文章中的更改。
正如我之前所说,最后复制文件是操作系统问题。如果你想在Windows中复制当前的jar,那么jar不能被其他进程锁定,因此它成为操作系统问题而不是Java问题。
可能的解决方法:
答案 1 :(得分:0)
我相信你可以使用:
File file = new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());
获取对.JAR文件路径的引用。
然后你只需复制一份:
http://download.oracle.com/javase/tutorial/essential/io/copy.html
您的操作系统可能不允许这样做,但我认为应该这样做。