使用 java-code 创建 .jar 的快捷方式
Create shortcut to .jar using java-code
我为我的 Java 应用程序编写了一个更新程序,它在线下载其最新的 jar 文件,在启动新 jar 之前替换它的快捷方式并最终删除自身。
我使用以下代码创建快捷方式:
try {
//Location of shortcut -> Working
String address = "C:\Users\"+System.getProperty("user.name")+"\Desktop\App.lnk";
//Delete old shortcut -> Not working
File f = new File(address);
f.delete();
//Create new shortcut
FileWriter fw = new FileWriter(address);
fw.write("[Program]\n"); //Probably wrong section but cannot find real one
fw.write("FILE=" + (new File(App.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getPath()) + "App-"+version+".jar\n"); //Shortcut to newest version
fw.flush();
fw.close();
} catch (URISyntaxException e) {e.printStackTrace();}
代码确实创建了一个文件,但它似乎被破坏了所以我的问题是我在这里做错了什么?
这是它的工作原理:
ShellLink shortcut = ShellLink.createLink("App.jar").setWorkingDir(new File(".").getAbsolutePath());
shortcut.getHeader().getLinkFlags().setAllowLinkToLink();
shortcut.saveTo("C:\Users\"+System.getProperty("user.name")+"\Desktop\App.lnk");
我为我的 Java 应用程序编写了一个更新程序,它在线下载其最新的 jar 文件,在启动新 jar 之前替换它的快捷方式并最终删除自身。
我使用以下代码创建快捷方式:
try {
//Location of shortcut -> Working
String address = "C:\Users\"+System.getProperty("user.name")+"\Desktop\App.lnk";
//Delete old shortcut -> Not working
File f = new File(address);
f.delete();
//Create new shortcut
FileWriter fw = new FileWriter(address);
fw.write("[Program]\n"); //Probably wrong section but cannot find real one
fw.write("FILE=" + (new File(App.class.getProtectionDomain().getCodeSource().getLocation().toURI()).getPath()) + "App-"+version+".jar\n"); //Shortcut to newest version
fw.flush();
fw.close();
} catch (URISyntaxException e) {e.printStackTrace();}
代码确实创建了一个文件,但它似乎被破坏了所以我的问题是我在这里做错了什么?
这是它的工作原理:
ShellLink shortcut = ShellLink.createLink("App.jar").setWorkingDir(new File(".").getAbsolutePath());
shortcut.getHeader().getLinkFlags().setAllowLinkToLink();
shortcut.saveTo("C:\Users\"+System.getProperty("user.name")+"\Desktop\App.lnk");