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節「使用嵌入式資源定製」。
引用的段落可能是可能的原因嗎?爲了將此功能納入獨立運行的運行時,需要採取何種解決方法?
謝謝。
您是否可以將您的應用程序與外部「提供程序」(如彈性城堡)打包在一起? – Qwerky
我相信這可能是一個合理的選擇,儘管坦率地說,我更喜歡一個駐留在** JDK **中的本地解決方案,而不是依靠外部依賴。我會嘗試更多的研究這個特殊問題,如果不成功 - 我會嘗試彈性城堡提供的庫。感謝您的評論。 – ludwig
查看https://blogs.oracle.com/talkingjavadeployment/entry/native_packaging_cookbook_using_drop捆綁的JCE默認不打包。 – Qwerky