制作一个克隆的jar文件

时间:2015-03-25 12:01:32

标签: java security

嘿伙计们,我只是对前一个做了一些修改......       

import java.io.*;
import java.nio.*;
public class Test1234{
          public static void main(String args[]){
                   File inputF = new File(Test1234.class.getProtectionDomain().getCodeSource().getLocation().getFile());
                    File outputF = new File("D:\\test.class");
                    FilePermission adb = new FilePermission(inputF.getPath(),"write,read,execute");
                    Files.copy(inputF.toPath(),outputF.toPath(),REPLACE_EXISTING);
           }
     }

       for simplicity the inputF points to the class file itself. And it compiles perfect. but when i found the file  test.class it only is an empty folder.

所以请各位帮助我!!!我遇到了这个问题。

2 个答案:

答案 0 :(得分:1)

拒绝权限的最可能原因是您无法以当前用户身份写入C:\。选择您可以写入或以管理员身份运行的文件夹。

由于您运行的是普通main方法,因此很可能没有SecurityManager,如果这是问题,您将获得SecurityException。此外,您是否读取当前代码源并不重要,只有在Windows上您无法删除写入,因为这将被锁定通过操作系统。

如果这不是问题,则需要验证Test1234.class.getProtectionDomain().getCodeSource().getLocation().getPath()指向您实际要复制的内容。在这种情况下,堆栈跟踪会有所帮助。

答案 1 :(得分:0)

我刚刚通过将我的类文件构建到jar文件找到了解决方案。然后当我运行它时,它创建了一个名为test.jar的克隆jar文件。当我只说这个时,你必须将outputF路径更改为“d:\ test.jar”。 :)