Пакетный файл больше не работает после перехода с Java версии 8 на 12 - PullRequest
0 голосов
/ 20 сентября 2019

Раньше я использовал 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

Там очень много грязи ...

  1. Соединение javapath не изменилось, поэтому я все еще получаю Java8 версия.Это ошибка?И есть ли способ автоматически выбрать последнюю версию исполняемого файла Java?

  2. Даже если я наберу 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)  

Но если я использую реальный адрес файла, он работает нормально.Как придешь?И что мне положить в отсутствующий ключ реестра?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...