Ho intenzione di utilizzare un problema che sto avendo con un'applicazione Java per spiegare la mia domanda a titolo di esempio, ma questa domanda non ha nulla a che fare con Java.Collegamento di Windows a un collegamento simbolico a un eseguibile
Sto usando Windows 7 (64-bit) e voglio creare un collegamento al menu Start per eseguire un'applicazione GUI Java. Come di Java 8, il programma di installazione mette NTFS link simbolici in un luogo ben noto che punta a un rilascio specifico (cioè soggetto a frequenti cambiamenti) annuario:
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]
ho creato un collegamento il cui obiettivo riga di comando è stato C: \ ProgramData \ Oracle \ Java \ javapath \ javaw.exe java_app.jar ma quando lo eseguo, Windows dice che il percorso javaw.exe non esiste. Posso eseguire correttamente la stessa riga di comando dalla finestra di dialogo Esegui di Windows; solo non da una scorciatoia. Qualcuno può offrire una soluzione? (Preferisco non creare un file batch per eseguire il comando, in quanto ciò creerebbe una console inutile.)
(NB È anche possibile visualizzare lo stesso problema senza utilizzare Java. Basta creare un collegamento simbolico a Notepad.exe (utilizzando il comando MKLINK) e quindi provare a creare un collegamento al collegamento simbolico.)
Solo scorciatoie? Anche il doppio clic non ha mai funzionato per me, almeno non in Vista o Windows 7. È qualcosa di strano con il modo in cui l'API 'ShellExecute' viene richiamata da Explorer, et al. Come soluzione alternativa potresti creare un launcher senza console che chiama 'CreateProcess' ed esce. – eryksun
Grazie, eryksun, questo è un buon punto per fare doppio clic su questo problema. Stranamente, l'esecuzione dello stesso collegamento simbolico dalla casella Esegui di Windows funziona correttamente, anche se è anche Explorer che esegue anche questo. Il tuo suggerimento per scrivere un lanciatore è probabilmente la soluzione migliore. –
È stato risolto? Ho avuto lo stesso identico problema l'anno scorso e non ce l'ho oggi.Non so esattamente cosa è cambiato, come l'ho risolto o se si trattava di un aggiornamento specifico di Windows che lo risolveva. Ma sono in grado di utilizzare un target di scelta rapida di 'C: \ ProgramData \ Oracle \ Java \ javapath \ javaw.exe -Xmx1G -jar" C: \ Programmi \ MyApp \ myapp.jar ". Ho creato il collegamento sul desktop, quindi bloccato sulla barra delle applicazioni. Dopo ogni aggiornamento, il link simbolico viene intercettato dal programma di installazione Java e devo ricreare manualmente il collegamento. Non può essere aggiornato perché il percorso non è cambiato, ma non funzionerà diversamente. – user314159