2013-05-21 5 views
4

Чтобы создать установщик для моего приложения javafx, я выполнил tutorial. И это, как и ожидалось, делает установщик.Включить java.exe во встроенную среду

каталог структура это делает это:

MyApp

+app 

    +runtime 

    +MyApp.exe 

    +MyApp.ico 

Среда содержит среду выполнения Java. Но проблема в том, что мое приложение создает некоторый Java-процесс и ему нужен путь java.exe. Но при просмотре вышеперечисленной среды выполнения файла она не содержит java.exe.

т.е.

выполнения

+jre 

    +bin 

     +java.dll 

      missing java.exe 

Как получить путь java.exe, так что я могу использовать его, чтобы начать другой процесс Java. Или как начать java-процесс от java.dll?

PS: This ссылка обсуждает тот же вопрос, но не отвечает на него.

+0

Вы должны создать приложение JNI, чтобы использовать DLL и запустить новый исполняемый файл. – Jayan

+0

Нет. У них есть способ включить java.exe во время выполнения. Я нахожу для thta-решение – Jatin

+0

Хорошо, обновил теги, которые будут javax и упаковка. Это не вопрос java – Jayan

ответ

2

Команда разработчиков Oracle Java Deployment Team содержит инструкции по настройке частей JRE для включения в самосохраняемое приложение.

я просто скопировать и вставить соответствующий раздел здесь, в случае, если оригинал ссылка идет мертвой:

При использовании упаковочных инструментов для получения установочного пакета не может быть необходимо настроить изображение приложения прежде чем он будет завернут в установщик. Зачем? Например, вы можете захотеть подписать приложение, поэтому оно не кажется ненадежным для ОС (например, чтобы удовлетворить требованиям Mac OS X Gatekeeper).

Также по умолчанию автономное приложение не содержит полной копии Java Runtime. Мы включаем только набор обязательных компонентов. Одной из причин, почему этот подход был сделан, является то, что мы хотим уменьшить размер пакета. Однако есть ситуации, когда ваше приложение может зависеть от этих необязательных компонентов, и в этом случае вам понадобится способ добавить их в частную среду выполнения. Например, https-соединения не будут работать, если отсутствует jre/lib/ext/sunjce_provider.jar.

В настоящее время это может быть достигнуто путем предоставления настраиваемого сценария конфигурации, который выполняется после заполнения изображения приложения. Как и в приведенном выше примере со значком, вам нужно включить подробный вывод, чтобы найти имя файла сценария, а затем отбросить его в место, где будут найдены инструменты для упаковки. Обратите внимание, что язык сценариев также зависит от платформы. В настоящее время мы поддерживаем только оболочку для Mac/Linux и Windows Script на окнах.

Как вы узнали, где находится изображение приложения? В настоящее время пользовательские скрипты запускаются в каталоге, где хранятся файлы конфигурации, но доступ к образам приложения можно получить с использованием относительного пути к конкретной платформе. Вы можете получить этот путь из подробного вывода или путем установки переменной среды JAVAFX_ANT_DEBUG в true для сохранения промежуточных артефактов сборки.

Вот пример сценария (внесенный Джоном Петерсеном), который вы можете добавить, чтобы добавить jre/lib/ext/sunjce_provider.jar в пакет приложений MyApp на платформе Windows.Сценарий с использованием Javascript, но вы также можете использовать скрипты VBScript для Windows.

<?xml version="1.0" ?> 
<package> 
    <job id="postImage"> 
    <script language="JScript"> 
    <![CDATA[ 
     var oFSO = new ActiveXObject("Scripting.FileSystemObject"); 
     var oFolder = oFSO.getFolder("."); 
     var from = oFolder.path + "\\MyApp\\app\\sunjce_provider.jar"; 
     var to = oFolder.path + "\\MyApp\\runtime\\jre\\lib\\ext"; 
     if (!oFSO.FolderExists(to)) { 
      oFSO.CreateFolder(to); 
     } 
     to += "\\"; 
     oFSO.CopyFile(from, to); 
    ]]> 
    </script> 
    </job> 
</package> 

Вышеприведенные обсуждает копируя sunjce_provider.jar файл установки JRE в связке приложений, но процедура для копирования любой другой файл, в том числе java.exe должны быть одинаковыми.

Дополнительные сведения о том, как изначально создать комплект для настройки, приведены в JavaFX Deployment Guide.

Смежные вопросы