2013-07-30 42 views
2

出於某種原因,JavaFX的似乎並不時所描述的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運行時的一個子集默認包含。一些可選的 和很少使用的文件被排除在外以減小包的大小,如 所有可執行文件。如果您需要默認包含 以外的內容,則需要將其作爲後處理步驟進行復制。對於 可安裝軟件包,可以在填充自包含應用程序文件夾後執行的配置腳本 執行此操作。請參閱 第6.3.3節「使用嵌入式資源定製」。

引用的段落可能是可能的原因嗎?爲了將此功能納入獨立運行的運行時,需要採取何種解決方法?

謝謝。

+0

您是否可以將您的應用程序與外部「提供程序」(如彈性城堡)打包在一起? – Qwerky

+0

我相信這可能是一個合理的選擇,儘管坦率地說,我更喜歡一個駐留在** JDK **中的本地解決方案,而不是依靠外部依賴。我會嘗試更多的研究這個特殊問題,如果不成功 - 我會嘗試彈性城堡提供的庫。感謝您的評論。 – ludwig

+2

查看https://blogs.oracle.com/talkingjavadeployment/entry/native_packaging_cookbook_using_drop捆綁的JCE默認不打包。 – Qwerky

回答

相關問題