将文件从源复制到计算机

时间:2015-10-06 14:41:01

标签: java

我想在java中创建一个安装程序,它将源文件(如打包文件的包装页面)复制到Appdata文件夹,这可能吗?我该怎么做?

1 个答案:

答案 0 :(得分:1)

String homeDir = System.getProperty("user.home");
String myAppFolderName = ".MyApp";
Path installDir = Paths.get(homeDir, "AppData");
if (!Files.isDirectory(installDir) { // Maybe not Windows
    installDir = Paths.get(homeDir);
}
Path myAppFolder = Paths.get(installDir.toString(), myAppFolderName);
Files.createDirectory(myAppFolder);

Path sources = Paths.get(new URI("jar:file://... .jar!/install_image"));
Files.copy(sources, myAppFolder);

对于jar的文件,URI:

MyAppClass.class.getProtectionDomain()
    .getCodeSource().getLocation().toURI().getPath()

这使用

  • 只要没有AppData目录(如在Linux或Mac上),就会退回
  • 一些子目录.MyApp将所有内容放入
  • 用于解包的zip文件系统(“jar:file:/ ...”)
  • 获取jar的URI的方法

你可能想要捕捉没有jar运行的情况 - 用于开发。