2013-01-24 94 views
1

我知道我可以將Swing應用程序轉換爲Applet或Java Web Start應用程序。使用Java的Qt說可以對不是Swing的應用程序執行相同的操作嗎?使用Applet或Java Web將Java桌面應用程序轉換爲Web開始

我真正想要的是一個使用Java的UI框架,它儘可能跨平臺,並且還具有豐富的UI功能。能夠將應用程序作爲桌面或Web應用程序運行會更好。

+0

Java Web Start應該工作,你試過了嗎? –

回答

0

我在其中一個項目中所做的工作是將應用程序作爲Web應用程序開發,然後生成一個可安裝的應用程序來分發我的應用程序。這有很大的好處:

  1. 它可以安裝在服務器上並公開可用。就像一個普通的Web應用程序
  2. 它也可以安裝在桌面上。

我使用「Jetty」將Web服務器嵌入到我的應用程序中,並且能夠在桌面環境中獨立運行應用程序。 Jetty的口號是「不要在Jetty中部署您的應用程序,請在您的應用程序中部署Jetty。」

此外,我用「IzPak」將我的應用程序打包到可執行JAR中進行安裝。如果你想讓那些可能沒有安裝Java的用戶容易安裝JAR,你可以使用launch4j這是一個將JAR封裝到EXE中的工具。因此,如果計算機已經具有Java,並且如果不通知用戶他需要安裝Java才能繼續進行,它可以首先進行驗證。這樣做的唯一缺點是,如果將應用程序包裝在EXE中,則會限制其他平臺的可移植性,但這是您根據需求做出的決定。

+0

因此,作爲已安裝的應用程序,您的網絡應用程序將使用瀏覽器和本地主機URL進行訪問? – user994165

+0

@ user994165是的,我有一些代碼啓動默認瀏覽器並打開應用程序所在的URL(本地主機)。 –

1

我真正在尋找的是一個使用Java的UI框架,它儘可能跨平臺,並且具有豐富的UI功能。

假設桌面部署,三大框架是SwingSWTJavaFX

嘗試JavaFX Ensemble sample以查看該技術是否符合您的需求。

我知道我可以將Swing應用程序轉換爲Applet或Java Web Start應用程序。使用Java的Qt說可以對不是Swing的應用程序執行相同的操作嗎?

QT是不在JVM上運行的本機代碼 - 它不是Java UI框架。 Applet和Web Start程序需要一個Java類作爲入口點。任何使用QT的情況都需要一個Java QT自適應層,我不知道這種東西的存在 - 你可能需要基於像JNI這樣的技術來構建它。

能夠運行應用程序作爲桌面或Web應用程序將是可取的。

JavaFX deployment guide各種JavaFX的部署選項和Swing deployment guide各種搖擺部署選項。

Web應用程序的定義非常模糊。這裏有一些不同的情況:

  • 你僅僅限於HTML5 =>產生到 服務器上的HTML分配給客戶端。
  • 您希望html啓動Java 應用程序=>然後可以使用類似WebStartJava Deployment Toolkit的組合。
  • 您將在瀏覽器窗口中呈現 JavaFX應用程序=>然後使用browser embedded app

嵌入java應用程序有許多缺陷是網頁(只需使用谷歌發現其中的一些)。

+0

沮喪的選民關心分享他們的推理嗎?這是唯一值得加價的答案。 –

0

Java Web Start應用程序可以包含本機庫,所以是的,您應該可以使用Qt(假設存在綁定)將應用程序轉換爲JWS應用程序。

另一方面,由於您無法控制頂層窗口的創建,所以小程序使用AWT/Swing以外的其他任何東西都很棘手。

0

如果你想使用Qt,你首先必須爲Java創建Qt綁定,因爲它們目前不能正常工作。

如果你想使用來自Java Applet的Qt綁定,你將需要使你的綁定成爲一個可安裝的擴展,除非你知道你在做什麼,否則這將是潛在的安全風險。你還必須讓用戶安裝你的擴展。另外IcedTea-web是Linux發行的FOSS插件,不會加載擴展。所以如果你想讓你的擴展在Linux上工作,你將不得不分叉IcedTea-web並製作你自己的插件。

所以簡短的回答:堅持搖擺。

相關問題