Раньше я использовал Java версии 8, и у меня был командный файл, который позволял мне щелкнуть файл .jar и выполнить его.Код был очень прост: start javaw.exe -jar %1
Переменная PATH включает в себя C:\ProgramData\Oracle\Java\javapath
, который является переходом к другой папке, содержащей копии различных файлов Java .exe.Пока все хорошо.
Однако я установил Java версии 12, и пакетный файл не работает по двум причинам.
Для интереса, PATH:
PATH = C: \ Program Files (x86) \ Common Files \ Oracle \ Java \ javapath; C: \ ProgramData \ Oracle \ Java \ javapath; C: \ Program Files (x86) \ NVIDIA Corporation \ PhysX \ Common; C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Files (x86) \ ATI Technologies \ ATI.ACE \ Core-Static; C: \ Program Files \ Microsoft Windows Performance Toolkit \; D: \ Peter \ PC \; C: \ Program Files (x86) \ Общие файлы \ Acronis \ SnapAPI \; C: \ Program Files \ SlikSvn\ bin; C: \ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn \; C: \ Program Files \ Microsoft \ Установщик веб-платформы \; C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript \ 1.0 \;C: \ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn \; C: \ ProgramData \ Oracle \ Java \ javapath; C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Proграмм-файлы (x86) \ ATI Technologies \ ATI.ACE \ Core-Static; C: \ Program Files \ Инструментарий производительности Microsoft Windows \; D: \ Peter \ PC \; C: \ Program Files (x86) \ Общие файлы \ Acronis\ SnapAPI \; C: \ Program Files \ SlikSvn \ bin; C: \ Program Files \ Microsoft SQL Server \ 110 \ Tools \ Binn \; C: \ Program Files \ Microsoft \ Установщик веб-платформы \; C: \ Program Files (x86) \ Microsoft SDK \ TypeScript \ 1.0 \; C: \ Program Files \ Microsoft SQL Server \ 120 \ Tools \ Binn \; C: \ Старые программы \ Git1 \ cmd; C: \ Users \ Peter_2 \ AppData \ Local \ GitHubDesktop\ bin
Там очень много грязи ...
Соединение javapath
не изменилось, поэтому я все еще получаю Java8 версия.Это ошибка?И есть ли способ автоматически выбрать последнюю версию исполняемого файла Java?
Даже если я наберу start "C:\Program Files\.....\javaw.exe" -jar jarfile.jar
, мне сказали, что он не может найти одну из библиотек, которые яс помощью.Я должен включить -cp pathlist
параметр.Это, конечно, означает, что я не могу написать командный файл, который просто выбирает имя файла.Есть ли выход из этой дилеммы, или я должен отказаться от идеи простых пакетных файлов?
Если это имеет какое-то значение, я использую NetBeans для разработки программ.
[Добавлено 27 сентября 2019] За последнюю неделю я удалил все версии Java и установил только версию 12. Поскольку @VGR предположил, что на моем пути нет javapath
, и ничего не было помещено в Program Data\Oracle\Java
папка.Поэтому я сделал собственное соединение, указал его на папку установки Java\bin
и добавил в свой PATH
.Но все же происходит что-то странное.Вот результат сеанса консоли.
D:\Peter\PC>dir jre*
27/09/2019 15:11 <JUNCTION> JREDir [C:\Program Files\Java\jdk-12.0.1\bin]
Таким образом, Junction указывает, где он должен быть.
D:\Peter\PC>java -version
Error: opening registry key 'Software\JavaSoft\JRE'
Error: could not find java.dll
Error: Could not find Java SE Runtime Environment.
Похоже, что он находит установку Java, но не ключ реестра
D:\Peter\PC>"C:\Program Files\Java\jdk-12.0.1\bin"\java -version
Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true
java version "12.0.1" 2019-04-16
Java(TM) SE Runtime Environment (build 12.0.1+12)
Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)
Но если я использую реальный адрес файла, он работает нормально.Как придешь?И что мне положить в отсутствующий ключ реестра?