Я собираюсь использовать проблему, с которой я сталкиваюсь с Java-приложением, чтобы объяснить мой вопрос в качестве примера, но этот вопрос не имеет ничего общего с Java.Windows ярлык на символическую ссылку на исполняемый файл
Я использую Windows 7 (64-разрядная версия), и я хочу создать ярлык меню «Пуск» для запуска приложения GUI Java. По состоянию на Java 8, инсталлятор ставит NTFS символические ссылки в хорошо известном месте, указывающей на конкретном выпуске (т.е. подвержены частым изменениям) Каталог:
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]
Я создал ярлык, целью которого командная строка была C: \ ProgramData \ Oracle \ Java \ javapath \ javaw.exe java_app.jar, но когда я запускаю его, Windows говорит, что путь javaw.exe не существует. Я могу успешно запустить ту же командную строку в диалоговом окне «Запуск Windows»; просто не из ярлыка. Может ли кто-нибудь предложить решение? (Я предпочитаю не создавать командный файл для запуска команды, так как это создаст бесполезную консольную консоль.)
(NB Вы также можете увидеть эту проблему без использования Java. Просто создайте символическую ссылку на Notepad.exe (используя команду MKLINK), а затем попытайтесь создать ярлык для символической ссылки.)
Просто ярлыки? Двойной щелчок напрямую никогда не работал для меня, по крайней мере, не в Vista или Windows 7. Это что-то нелепо, как API-интерфейс ShellExecute вызывается Explorer и др. В качестве обходного пути вы можете создать неконсольную пусковую установку, которая вызывает «CreateProcess» и завершает работу. – eryksun
Спасибо, eryksun, это хорошая мысль о двойном щелчке с этой проблемой. Как ни странно, запуск одной и той же символической ссылки из окна Windows Run работает нормально, хотя это тоже Explorer, который тоже работает. Ваше предположение о написании пусковой установки, вероятно, является лучшим решением. –
Решено ли это? У меня была такая же проблема в прошлом году, и сегодня у меня ее нет.Я не знаю точно, что изменилось, как я его исправил, или если это был специальный Windows Update, который исправил его. Но я могу использовать ярлык «C: \ ProgramData \ Oracle \ Java \ javapath \ javaw.exe -Xmx1G -jar» C: \ Program Files \ MyApp \ myapp.jar. Я создал ярлык на рабочем столе, а затем привязал к панели задач. После каждого обновления symlink получает скрипт установки Java, и мне нужно вручную создать ярлык вручную. Он не может быть обновлен, потому что путь не изменился, но не будет работать иначе. – user314159