Двойной щелчок для запуска исполняемых файлов на нескольких платформах требует предварительной регистрации типа файла в операционной системе или существующего типа файла, чтобы знать, как обрабатывать код.
jlink статически связывает «необходимые модули и их транзитивные зависимости» с выходными данными.
У этой проблемы нет межплатформенного решения.
Маловероятно (или, другими словами, невозможно) включить все платформы в один файл, поскольку каждый исполняемый тип (COFF, ELF...) имеет различную структуру. Вы можете попытаться использовать общий пакетный файл для запуска правильного исполняемого файла, но в Windows для этого потребуется кодировка типа текстового файла; тем самым отравляя оставшийся двоичный код.
Использование jlink и нового формата файла jmod позволит вам хранить собственный код в контейнере Java и, таким образом, обеспечит точку входа во встроенный собственный код JRE в одном исполняемом образе для одного предварительного -определенная платформа.
Другая сторона этого вопроса связана с безопасностью. Поскольку встроенная JRE не подлежит обновлениям безопасности, взломщики могут внедрить ранее известную ошибочную JRE, тем самым раскрывая исправленные эксплойты неосведомленным потребителям.
Ожидаемым ответом антивирусных программ будет пометка всех необновленных встроенных JRE как вирусов.
person
Strom
schedule
25.01.2019
jlink
также может делать то, что вы хотите. - person ZhekaKozlov   schedule 26.01.2019