Ich werde ein Problem verwenden, das ich mit einer Java-Anwendung habe, um meine Frage anhand eines Beispiels zu erklären, aber diese Frage hat nichts wirklich mit Java zu tun.Windows Verknüpfung zu einem symbolischen Link zu einer ausführbaren Datei
Ich verwende Windows 7 (64-Bit) und ich möchte eine Startmenü-Verknüpfung erstellen, um eine GUI-Java-Anwendung auszuführen. Ab Java 8, setzt das Installationsprogramm NTFS symbolische Links in einer bekannten Ort zeigt auf eine Freisetzung spezifischen (dh, unterliegt häufigen Wechsel) Verzeichnis:
C:\>where javaw
C:\ProgramData\Oracle\Java\javapath\javaw.exe
C:\>dir C:\ProgramData\Oracle\Java\javapath\javaw.exe
Volume in drive C is OS
Volume Serial Number is D4DC-33AF
Directory of C:\ProgramData\Oracle\Java\javapath
05/03/2015 15:40 <SYMLINK> javaw.exe [C:\Program Files\Java\jre1.8.0_40\bin\javaw.exe]
ich eine Verknüpfung, deren Zielbefehlszeile war C: \ ProgramData \ Oracle \ Java \ javapath \ javaw.exe java_app.jar aber wenn ich es ausführe, sagt Windows, dass der Pfad javaw.exe nicht existiert. Ich kann die gleiche Befehlszeile erfolgreich über den Windows-Ausführen-Dialog ausführen. nur nicht von einer Abkürzung. Kann jemand eine Lösung anbieten? (Ich möchte keine Stapeldatei erstellen, um den Befehl auszuführen, da dies eine nutzlose Konsolenbox erzeugen würde.)
(Hinweis: Sie können dasselbe Problem auch ohne Java sehen. Erstellen Sie einfach eine symbolische Verknüpfung zu Notepad.exe (Verwenden Sie den Befehl MKLLINK), und versuchen Sie dann, eine Verknüpfung zur symbolischen Verknüpfung zu erstellen.)
Nur Abkürzungen? Doppelklick direkt hat auch nie für mich funktioniert, zumindest nicht in Vista oder Windows 7. Es ist etwas verrückt mit wie die ShellExecute API von Explorer, et al aufgerufen wird. Um dieses Problem zu umgehen, können Sie ein nicht konsolefähiges Startprogramm erstellen, das CreateProcess aufruft und beendet. – eryksun
Danke, Eryksun, das ist ein guter Punkt über Doppelklick mit diesem Problem auch. Seltsamerweise funktioniert das Ausführen des gleichen Symlinks aus der Windows Run-Box, obwohl es auch der Explorer ist, der das ausführt. Ihr Vorschlag, einen Launcher zu schreiben, ist wahrscheinlich die beste Lösung. –
Wurde das gelöst? Ich hatte genau das gleiche Problem letztes Jahr, und ich habe es heute nicht.Ich weiß nicht genau, was sich geändert hat, wie ich es repariert habe, oder ob es ein bestimmtes Windows Update war, das es behoben hat. Aber ich kann ein Verknüpfungsziel von 'C: \ ProgramData \ Oracle \ Java \ javapath \ javaw.exe -Xmx1G -jar" C: \ Programme \ MyApp \ myapp.jar "verwenden. Ich habe die Verknüpfung auf dem Desktop erstellt und dann an die Taskleiste angeheftet. Nach jeder Aktualisierung wird der Symlink vom Java-Installer manipuliert, und ich muss die Verknüpfung manuell neu erstellen. Es kann nicht aktualisiert werden, da sich der Pfad nicht geändert hat und trotzdem nicht funktioniert. – user314159