Я собираюсь использовать проблему, которая у меня возникла с приложением Java, чтобы объяснить мой вопрос на примере, но этот вопрос не имеет ничего общего с Java.
Я использую Windows 7 (64-разрядную версию) и хочу создать ярлык в меню «Пуск» для запуска приложения 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; только не с ярлыка. Кто-нибудь может предложить решение? (Я предпочитаю не создавать пакетный файл для запуска команды, так как это создаст бесполезную консольную коробку.)
(Примечание. Вы также можете увидеть ту же проблему без использования Java. Просто создайте символическую ссылку на Notepad.exe (используя команду MKLINK), а затем попробуйте создать ярлык для символической ссылки.)
ShellExecute
API вызывается Explorer и др. В качестве обходного пути вы можете создать неконсольную программу запуска, которая вызываетCreateProcess
и завершает работу. - person Eryk Sun   schedule 06.03.2015