Запускаемый файл .jar не выполняется при двойном щелчке - PullRequest
0 голосов
/ 03 апреля 2020

В течение некоторого времени я сталкивался с такой проблемой, что при двойном щелчке работающего файла .jar он не будет выполняться. Сегодня я подумал, что мне стоит взглянуть на решение этой проблемы и немного прочесть различные статьи SO, касающиеся этой темы c.

Прежде всего я должен сказать следующее:

  • Проблема возникает на ноутбуке моей компании под управлением WIN 8, а также на моем личном рабочем столе WIN 10
  • Я уверен, что примерно через 1,5 - 2 года go на ноутбуке сработал двойной щелчок
  • Однако на рабочем столе, даже непосредственно после установки (которая была в октябре прошлого года), двойной щелчок не работал, и, возможно, я даже пытался исправить проблему, переустанавливая JRE
  • В отличие от многих ситуации, описанные в различных постах, я могу правильно запустить приложения, вызвав "java -jar application.jar" в cmd, но дважды щелкнув AS WELL AS, пытаясь "открыть с помощью" Java бинарную платформу SE, ничего не происходит

Как указывалось в нескольких сообщениях, я пытался запустить Jarfix, однако теперь поведение выглядит следующим образом: я написал client-serv Приложение для моей дипломной работы, которое работало отлично, вчера я запустил приложение через cmd. После использования Jarfix я теперь могу запустить сервер двойным щелчком, тогда как клиентская сторона ничего не будет делать при двойном щелчке. Я уже проверил правильную ассоциацию типов файлов, как описано в этом посте , и все выглядит правильно.

Также я, конечно, проверил это с разными программами, а не только с моими собственными приложениями. Та же проблема возникает, например, (на моем рабочем столе WIN 10) при попытке запустить Life in the Woods (для тех, кто его не знает, это довольно популярный мод-пакет для Minecraft), тогда как при двойном нажатии она отлично работала на моем предыдущем рабочем столе WIN 10 .

Проблема, с которой я столкнулся, заключается не в том, что я не смог бы обойти ее, выполнив команды cmd, но, с одной стороны, это просто раздражает - всегда CD в нужное место и запуск этой команды и с другой стороны, это просто то, что должно определенно работать после установки JRE. Не имеет никакого смысла, что для большинства людей это работает, а для некоторых людей случаются случайные вещи - все более или менее в одинаковых условиях, это не то, как должно вести себя любое программное обеспечение.

Я бы будь по-настоящему счастлив, если кто-нибудь может помочь мне решить эту проблему или указать мне на то, что я мог упустить из виду и забыть проверить.

РЕДАКТИРОВАТЬ:

Как указано @ VGR файловые операции с использованием относительных путей могут быть причиной проблемы, поэтому ниже приведены два случая, когда используются файловые операции:

На стороне сервера:

File file = new File("C:/Util/authHashes.lvs");

Клиент -side:

systemProperties.put("javax.net.ssl.keyStore", "C:/Util/auth/labkey.jks");
systemProperties.put("javax.net.ssl.keyStorePassword", "password");
systemProperties.put("javax.net.ssl.trustStore", "C:/Util/auth/labtrust.jks");

Странно то, что оба класса используют абсолютные пути, но сервер запускается при двойном щелчке, а клиент - нет. Если оба используют один и тот же тип пути, не должны ли они вести себя одинаково?

...