Я недавно собрал приложение JWS, которое получает аргумент из динамически создаваемого файла JNLP (подробности можно найти здесь ). Это все хорошо, за исключением того, что приложение игнорирует аргумент (запускается без загрузки указанного числа) в моей системе (linux x86_64). Однако кажется, что приложение JWS точно так же, как и предполагалось на машине win_64 моего коллеги. Это довольно интересно, так как я не смог повторить его успех на другом подобном win_64.
Чтобы сделать все более захватывающим, то же самое приложение JWS работает просто отлично (другими словами, не игнорирует аргумент), когда я загружаю файл JNLP и запускаю его с помощью javaws на терминале.
Я сравнил файлы java.policy и javaws.policy, и отличий нет. Файл JNLP явно дает все разрешения, а файлы JAR подписаны полностью (что не может быть источником проблемы, иначе приложение не запустится, верно?).
Вопрос 1: Так от чего может зависеть эта проблема?
РЕДАКТИРОВАТЬ: Мне только что удалось получить правильный ответ от новой (в этом конкретном смысле) машины win32, без каких-либо явных обновлений Java. Вопрос 2: Существует ли файл журнала для javaws, в котором я могу проверить, что происходит, или, альтернативно, могу ли я подробно описать запуск консоли, чтобы я мог создавать свои собственные настраиваемые журналы?
Редактировать 2: Кстати, я забыл упомянуть, что я также разместил этот вопрос на форумах Oracle , о которых я, возможно, должен был упомянуть изначально, поскольку это было вежливо указал там. В любом случае, есть дополнительная информация о файле JNLP в потоке, на случай, если это может быть актуально.
Редактировать 3: Я пришел к выводу, что проблема может быть связана со свойствами тега <jnlp>
при создании файла JNLP. Первоначально тег jnlp
выглядел примерно так:
<jnlp spec="1.0+" codebase="http://mydomain/myapp/"
href="my.jnlp">
Проблема в том, что в каталоге, объявленном в базе кодов, нет my.jnlp, вместо этого код JNLP создается на лету скриптом Perl в каталоге cgi-bin и возвращается в качестве вывода поток (я думаю). Поэтому я отредактировал скрипт для генерации JNLP со следующим тегом:
<jnlp spec="1.0+" codebase="http://mydomain/myapp/"
href="http://mydomain/cgi-bin/my.jnlp">
Результат этого эксперимента: даже графический интерфейс не запустился на этот раз ...
Я нашел соответствующую ветку на форумах Oracle, где было рекомендовано определить свойство href
следующим образом:
href="script.jsp?<%=request.getQueryString()%>">
что, к сожалению, не решает мою проблему.
Вопрос 3: Может ли это изменение быть применимо и к моей ситуации? В таком случае как? Если бы не какие-либо идеи о том, что может быть причиной проблемы, было бы серьезно оценено, так как я сейчас нахожусь в тупике в своей работе