2013-07-30 6 views
2

По какой-то причине, JavaFX не кажется, в настоящее время поддерживает любые алгоритмы для криптографической службы Cipher, когда приложение выполняется после автономного развертывания, как описано here.В автономных приложениях JavaFX отсутствует криптографическая служба шифрования?

Учитывая этот код:

import java.security.Security; 
import java.util.Iterator; 
import javafx.application.Application; 
import javafx.collections.FXCollections; 
import javafx.collections.ObservableList; 
import javafx.scene.Scene; 
import javafx.scene.control.ListView; 
import javafx.stage.Stage; 



public final class Main extends Application 
{ 
    @Override 
    public void start(final Stage stage) 
    { 
     final ObservableList<String> ol = FXCollections.observableArrayList(); 
     final ListView<String> lv = new ListView(ol); 

     for (final Iterator<String> iter = Security.getAlgorithms("Cipher").iterator(); iter.hasNext();) 
      ol.add(iter.next()); 

     final Scene s = new Scene(lv, 500, 400); 

     stage.setScene(s); 
     stage.sizeToScene(); 
     stage.show(); 
    } 
} 

Там нет проблем с получением населенного выхода с различными алгоритмами, если этот код побежало локально через Java пусковой, но дает пустого список, если приложение было упакован как автономный.

Однако, я также наткнулся на это:

только подмножество Java Runtime включена по умолчанию. Некоторые необязательные и редко используемые файлы исключаются для уменьшения размера пакета, такого как всех исполняемых файлов. Если вам нужно что-то, которое не включено в по умолчанию, вам необходимо скопировать его в качестве этапа последующей обработки. Для устанавливаемых пакетов вы можете сделать это из сценария конфигурации, который является , выполненным после заполнения автономной папки приложения. См. Раздел 6.3.3 «Настройка с использованием ресурсов Drop-In».

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

спасибо.

+0

Не могли бы вы упаковать приложение с помощью внешнего «Провайдера», такого как надувной замок? – Qwerky

+0

Я считаю, что это может быть правдоподобным вариантом, хотя, если быть откровенным, я бы предпочел собственное решение, которое находится в ** JDK **, вместо того, чтобы полагаться на внешние зависимости. Я попытаюсь исследовать этот конкретный вопрос больше, и если не удастся - я попробую библиотеки, предоставленные надувным замком. Спасибо за ваш комментарий. – ludwig

+2

Глядя на https://blogs.oracle.com/talkingjavadeployment/entry/native_packaging_cookbook_using_drop, связанный JCE не упакован по умолчанию. – Qwerky

ответ

0

Глядя на this link, в комплект поставки JCE по умолчанию не упакован.