Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 проблемы с java 8 v291  [new]
KLAYD
Member

Откуда:
Сообщений: 59
Доброго дня всем! Рабочая программа написана на oracle forms, по кнопке используя пакет WEBUTIL открываю ссылку на какой то сайт

client_host( 'cmd /c start ' || l_url );

на версии java 281 ещё всё работало, при переходе на 291 командная строка открывается, но переход на сайт не происходит. Пробовал включать обратно TLSv1 и TLSv1.1 в настройках и файле java.security, но не помогло. Может быть будут идеи, что могло сломаться с обновлением java 8?
28 апр 21, 17:38    [22315801]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с java 8 v291  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 137
А там есть какие-то логи? Вот так сложно придумать, это надо прям по release notes проходится..
28 апр 21, 17:57    [22315815]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с java 8 v291  [new]
KLAYD
Member

Откуда:
Сообщений: 59
Stanislav Bashkyrtsev,

мне кажется дело в этом куске

core-libs / java.lang
➜ Менее неоднозначная обработка котировок ProcessBuilder в Windows
В java.lang.ProcessBuilderреализации в Windows системное свойство jdk.lang.process.allowAmbiguousCommands=falseгарантирует, что для каждого аргумента двойные кавычки правильно закодированы в командной строке, передаваемой в Windows.CreateProcess. Аргумент с конечной двойной кавычкой, которой предшествует обратная косая черта, кодируется как буквальная двойная кавычка; ранее аргумент, включающий двойные кавычки, был бы присоединен к следующему аргументу. Пустой аргумент кодируется как пара двойных кавычек («»), в результате чего в качестве аргумента процессу передается строка нулевой длины; раньше это молча игнорировалось. Аргумент, содержащий двойные кавычки, кроме первых и последних, кодируется для сохранения двойных кавычек при передаче процессу; раньше встроенные двойные кавычки удалялись и не передавались процессу. Если для jdk.lang.process.allowAmbiguousCommandsсвойства установлено значение true: jdk.lang.process.allowAmbiguousCommands=true.

только как отключить и сделать как было я что то не понял, яву не знаю и не понятно где этот параметр править)в каком файле)
28 апр 21, 20:57    [22315958]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с java 8 v291  [new]
KLAYD
Member

Откуда:
Сообщений: 59
Stanislav Bashkyrtsev,

опс гугл переводчик) в оригинале так

core-libs/java.lang
➜ Less Ambiguous Processing of ProcessBuilder Quotes on Windows
In the java.lang.ProcessBuilder implementation on Windows, the system property jdk.lang.process.allowAmbiguousCommands=false ensures, for each argument, that double-quotes are properly encoded in the command string passed to Windows CreateProcess. An argument with a final trailing double-quote preceded by a backslash is encoded as a literal double-quote; previously, the argument including the double-quote would be joined with the next argument. An empty argument is encoded as a pair of double-quotes ("") resulting in a zero length string passed for the argument to the process; previously, it was silently ignored. An argument containing double-quotes, other than first and last, is encoded to preserve the double-quotes when passed to the process; previously, the embedded double-quotes would be dropped and not passed to the process. There is no change to existing behavior when the jdk.lang.process.allowAmbiguousCommands property is set to true: jdk.lang.process.allowAmbiguousCommands=true.
28 апр 21, 20:58    [22315959]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с java 8 v291  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 137
Да че-т не похоже, там все про double quotes пишут. Можешь конечно попробовать поменять jdk.lang.process.allowAmbiguousCommands=false. Не знаю что такое Oracle Forms, но если это обычное жава приложение (т.е. запускается jar файл), то из командной строки java -Djdk.lang.process.allowAmbiguousCommands=false [name of the jar].jar.

Но лучше конечно логи найти..
28 апр 21, 21:13    [22315969]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с java 8 v291  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11020
А это ничего, что java.awt.Desktop:
+ Since: 1.6
Supported operations include:
launching the user-default browser to show a specified URI;
launching the user-default mail client with an optional mailto URI;
launching a registered application to open, edit or print a specified file.
?
29 апр 21, 13:24    [22316311]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с java 8 v291  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
KLAYD
Доброго дня всем! Рабочая программа написана на oracle forms, по кнопке используя пакет WEBUTIL открываю ссылку на какой то сайт

client_host( 'cmd /c start ' || l_url );

на версии java 281 ещё всё работало, при переходе на 291 командная строка открывается, но переход на сайт не происходит. Пробовал включать обратно TLSv1 и TLSv1.1 в настройках и файле java.security, но не помогло. Может быть будут идеи, что могло сломаться с обновлением java 8?

Может ты случайно скачал headless-версию Jdk. Не знаю как у Oracle, но OpenJDK поставляется так по умолчанию
и если тебе нужны графические возможности (FX например) - то надо что-то дополнительно доустановить.
29 апр 21, 13:43    [22316335]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с java 8 v291  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11020
mayton
KLAYD
client_host( 'cmd /c start ' || l_url );
Может ты случайно скачал headless-версию Jdk. Не знаю как у Oracle, но OpenJDK поставляется так по умолчанию
Закусывать не пробовали?
Откуда для винды возьмётся специальная безголовая версия???

P.S.
Да, пророки поставляли отдельный "серверный" вариант и для винды, но это был совершенно отдельный архив.
29 апр 21, 14:47    [22316392]     Ответить | Цитировать Сообщить модератору
 Re: проблемы с java 8 v291  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Я-бы не спешил что-то утверждать. Просто проверить можно. В runtime.
29 апр 21, 15:14    [22316415]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить