8

JavaとWebテクノロジーでデスクトップアプリケーションを作成したいと思います。Javaを選択する主な理由は、Javaが無料でオープンソースであるため、投資が最小限に抑えられ、ライセンス費用などの投資を大幅に節約できることです。また、Webテクノロジーを選択する主な理由は、現在のJavaプログラマーは、HTMl、css、AjaxなどのWebテクノロジーに精通しており、WebテクノロジーですばらしいUIを作成した経験が豊富です。

私たちが作成したいソフトウェアについていくつかのアイデアをお伝えします。デスクトップベースのソフトウェア、つまりERPソフトウェアのようなものになります。

重要な要件は、優れたUIが必要であり、高速でリソースをあまり消費しないことです。

優れたGUIの実装は可能ですが、Javaでは難しいと聞いています。これは可能ですが複雑ですが、Microsoft製品のVisualStudioでも同じことを行うのは非常に簡単です。

Adobe Air、Nokia QTなどもチェックしましたが、どれもかなり高価であり、Javaテクノロジを使用したフロントエンドブラウザUIとバックエンド組み込みサーバー/データベースを探しています。

UIがWebテクノロジーを使用して作成され、組み込みサーバー(jettyやtomcatなど)とデータベースがあり、バックエンドプログラミングがJavaで行われるデスクトップソフトウェアを作成することは可能ですか。JavaFXはこれにどのように適合しますか?

したがって、基本的に、デスクトップアプリケーションには組み込みのブラウザ(Mozillaまたはソフトウェアと一緒にパッケージ化できるJavaブラウザ)がありますが、エンドユーザーはこれに気付かないはずです。

同じことについてのフィードバックをお待ちしております。JavaとWebテクノロジーの同様の組み合わせで作成されたソフトウェアの例をいくつか教えてください。

私はPulpTunesやZimbraのような似たようなソフトウェアをいくつか研究しましたが、それらはデータを表示するためにインターネットに接続しているようです。私たちのソフトウェアは完全にオフラインのデスクトップアプリケーションになります。

4

7 に答える 7

2

まず第一に、それは可能です。たとえば、探している場合は、http://wiki.eclipse.org/Hudson-ci/Meet_Hudsonを確認してください。彼らのコードを掘り下げると、基本的なアーキテクチャを手に入れることができます。組み込みデータベースは使用しません。アプリケーションは常にオフラインになるとおっしゃっていますが、その場合は、Eclipseプラグイン開発などのテクノロジーを使用した純粋なデスクトップアプリケーションを選択することをお勧めします。

すでに決心している場合は、同様のアプリケーションでの私の経験に基づいて役立ついくつかのポイントがあります。

  1. アプリケーションはオフラインですが(アプリケーションはどのユースケースでもサーバーに接続する必要はありませんが、ユーザーのマシンはインターネットにアクセスできます)、変更(htmlやjspページの変更など)/バグ修正を透過的に提供する必要がありますエンドユーザーに。JNLP / JavaWebStartはこれに適しています。

  2. JNLPのインストール方法を使用する場合は、ランチャーが組み込みデータベースのインストールとエンドユーザーマシンのポートを処理する必要があります(これは見た目よりも大きな問題です)。

  3. また、JNLPを介してサーバー(私の場合はJetty)を起動している場合、権限の問題が原因でクラスの読み込みエラーが発生します。サーバーコードを掘り下げる準備をしてください。私はずっと前にそれをしました、そして私は今正確な問題を指摘するためのコードを持っていません。

  4. インストールプロセス中およびアプリケーションの起動中に進行状況バーを表示します。戦争の展開には時間がかかり、ユーザーはアプリケーションが起動中であることをある程度知っている必要があります。スイングUIを作成することになります。

  5. アプリケーションの起動後、ユーザーシステムのデフォルトブラウザでアプリケーションのURLを自動的に起動します。組み込みブラウザは必要ありません。http ://java.sun.com/developer/technicalArticles/J2SE/Desktop/javase6/desktop_api/を確認してください。

  6. MySqlを埋め込みデータベースとして使用しました。Javaデスクトップアプリケーションへのmysqlの埋め込みを確認してください。それは私のために働きました、私は何の問題にも遭遇しませんでした。
于 2010-08-04T07:33:53.790 に答える
0

IMHOは、jsやajaxなどを使用してデスクトップアプリを作成するためだけにWebサーバーを実行するという考え全体が恐ろしいです... Web技術を使用してクロスプラットフォームアプリを作成できるApple-creatorTitaniumについて聞いたことがあります。他にも同様のプログラムがいくつかあります。

私はあなたがJavaUI用の良いwyswingSwingデザインツールを購入する方が良いと思います。それはあなたに数百ドルの費用がかかりますがあなたにたくさんの開発トラブルを節約するでしょう。優れたデスクトップアプリのレイアウトが、Webページのレイアウトよりも複雑であるとは信じがたいです。

于 2010-08-04T05:46:31.590 に答える
0

あなたは本当に正しいです、あなたが自分でプロジェクトを開発しているなら、Javaは素晴らしいです。

サーバー側のコーディングは、Spring(MVC、データベースなどの場合...非常にリッチで軽量なフレームワーク、習得と理解が容易)とhibernate(データベース処理用のORMフレームワーク、任意のデータベースサーバーにダイアレクトを提供)を使用して実行できます。

UIには、Spring MVC、JSF、GWT、またはjavaFXを使用できます。JavaFXは、ブラウザなしでJava上で実行されるJNLPダウンロードを提供します。その他のJavaFXサンプルについては、リンクを確認してください。http://javafx.com/samples/

つまり、UI側に使用したいものです。Web UI(つまりjavaFXではない)を好む場合は、多くのオプションがあります。

Ajaxの場合、簡単なajaxをサポートするライブラリがあります。DWR(Easy Ajax、JSからJAVA)や、yahoo、jQueryなどの他の多くのJSライブラリを使用できます。

お役に立てれば。

于 2010-08-04T05:31:17.977 に答える
0

私はおそらくこれにうんざりするでしょうが、これには JavaFX をお勧めします。私たちは、大企業の社内で使用する JavaFX アプリケーションの実装に成功しました。利点は、ソフトウェアがサーバー側で「制御」されることです (したがって、誰も「古い」バージョンを持っていません)。インストールの労力は最小限です (Java Web Start はこれを修正します。存在しない場合は最小限の JRE インストールをトリガーします)。最後に、JavaFX はブラウザーで実行でき、純粋なデスクトップ アプリケーションとしても変更する必要はありません。コード。

Adobe FLEX も別の候補ですが、「Web Start」ビットが欠けており、ブラウザーとデスクトップの間の簡単な移行という点ではそれほど柔軟ではありません。

いずれにせよ、JavaFX は FLEX のように完全な機能ではありませんが、バージョン 1.3 は戦闘準備が整っていると見なすことができ、Adobe Creative Suite 用の無料の JavaFX プラグインを使用してきちんとしたものを作成できます (アプリにグラフィックが含まれる場合)。

于 2010-08-04T08:13:14.350 に答える
0

私たちは非常に似たようなことをしようとしています。既存の Java Web アプリケーションがあります。Jetty と MySql がインストールされたデスクトップ システムでこれを実行することをテストしました。「アプリ」モードの Chrome ブラウザーでは、デスクトップ アプリケーションのように見えます。

私たちは、既存の成熟したオンライン Web アプリケーションのクロスプラットフォーム (PC/Mac/Linux) オフライン バージョンを実装する方法として、このアプローチを検討しています。誰かが同様のプロジェクトを知っているか、またはデスクトップアプリケーション用のアプリケーションサーバーを実行するというアイデアに穴を開けることができるかどうか聞いてみたい. もちろん、私たちの目標は、必要に応じて保護されたバリエーションを使用して、サーバーとデスクトップの両方の実装に基本的に 1 つのコード ベースを用意することです。

于 2013-11-01T03:58:17.470 に答える
0

埋め込まれた桟橋/トムキャットの部分を取得できませんでした。デスクトップ アプリで、データベースと対話する組み込みサーバーを実行する必要がありますか? では、各デスクトップ アプリは DB 接続を開くのでしょうか?

DB に接続して要求を処理する JavaEE サーバーに HTTP 要求を送信する Java デスクトップ アプリを使用しないのはなぜですか? したがって、基本的には、Java クライアント (開発者が作成できるほどリッチな場合があります) がブラウザーに取って代わります。これにより、スケーラビリティなどが大幅に向上します。

デスクトップで Swing + Apache Commons HttpClient を使用して開発された同様の (はるかに複雑ではありますが) 製品があります。これにより、シリアル化されたバイナリ データを含む HTTP POST 要求がサーバーに送信されます。- サーバー上で Java オブジェクトを再作成し、要求を実行する Web コンテナーで実行されるディスパッチャー サーブレット。

于 2010-08-04T06:51:16.567 に答える