Java Swing 桌面应用程序能否转换为 UWP 百年纪念应用程序 (AppX)?

Can a Java Swing desktop application be converted to a UWP centennial app (AppX)?

我一直在阅读有关项目百年纪念 (https://msdn.microsoft.com/windows/uwp/porting/desktop-to-uwp-root#preparing-your-desktop-app-for-conversion-to-uwp) 的信息,我发现有许多用 Java 编写的遗留业务线应用程序(更不用说 Python/Tkinter、在此处插入 language/gui 工具包 ,等等)。

我可以看到能够通过 Windows 商店 market/distribute 这些的好处(无论是在企业内部还是一般 public)。

我想知道是否可以将 Java 应用程序转换为 AppX 包(可能使用 launch4j 之类的东西作为中间步骤)?

您始终可以使用 Install4J 创建多平台 Java 应用程序安装程序并分发您的应用程序。

不,你不能。

安装程序部分很简单,但这些只是 JRE 的包装器。问题是 JRE(实际的 VM)对于 UWP 来说太复杂了,并且使用了很多无法移植的低级别 API。

我知道获得 Java apps onto UWP is Codename One 的唯一方法是一个开源项目和一个商业实体(和我的雇主)。请注意,您需要调整您的代码以使用代号一 API,它的灵感来自 Swing,但完全不同(并且更好)。

附带的好处是可移植到所有移动设备(iOS、Android 等)。

有可能,使用 Project Centennial。只需在静默模式下使用安装程序使用 Desktop App Converter 进行转换过程即可。

您也可以使用无安装程序模式,只需将所有内容(您的应用程序和 jre)放在一个文件夹中,创建一个将调用您的 java 程序的 exe,创建您的清单并调用 makepappx。一切都在文档中。该过程与将 java 应用程序部署到 Mac 商店非常相似。

更新

由于缺少有关为 Windows 商店打包 Java 应用程序的信息,我使用捆绑在 JDK 中的名为 SwingSet 的演示应用程序创建了一个简单的框架,以简化很多过程。请检查它:https://github.com/crramirez/uwp_bridge_java 并根据您自己的需要做出贡献,以便有一个好的起点。

我还向商店发布了一个 Java 应用程序,所以这个程序有效。

此致

如果您已经有应用程序的安装程序,您可以使用 MSIX Packaging Tool 将其重新打包为 MSIX 格式。您可以通过此工具 运行 您的桌面应用程序安装程序,并获取您可以在您的计算机上安装或上传到 Microsoft Store 的 MSIX 程序包。

Desktop App Converter 已弃用。