2016-03-13 4 views
0

J'ai écrit un programme de mise à jour pour mon application Java qui télécharge son dernier fichier jar en ligne, le remplace par un raccourci avant de lancer le nouveau pot et finalement de se supprimer.Créer un raccourci vers .jar en utilisant le code java

J'ai utilisé le code suivant pour créer le raccourci:

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();} 

Le code ne crée un fichier, mais il semble être rompu si ma question est ce que je fais mal ici?

+0

un fichier '.lnk' est ** pas ** un fichier texte - il est binaire. S'il vous plaît chercher des exemples de créer un correctement. Il y a beaucoup d'exemples de création en C/C++. – Petesh

+0

Malheureusement, c'était la seule source trouvée en Java, j'ai donc essayé celle-là ... Je vais chercher quelques exemples en C++/C et essayer de les convertir. Je vous remercie. – Hering

Répondre

1

Voilà comment cela fonctionne:

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");