0

デスクトップアプリケーションを作成したので、プロジェクトフォルダからdist.zipで配布する予定です。netbeans からプログラムを実行すると、すべて正常に動作します。launch.jnlp ファイルを開くと、フレームは開きますが、actionlistener をリッスンせず、何も表示されませんが、jar ファイルは機能しています。しかし、jnlp ファイルの代わりに jar ファイルを開くと、.class ファイルが開きます。しかし、コマンドプロンプトから実行します

java -jar projectname.jar

アプリケーションにはデータベースへの接続があります。エラーはどこにありますか?

4

1 に答える 1

3

これは、私がうまく使用している JNLP です。

<?xml version="1.0" encoding="utf-8"?> 
<jnlp 
  codebase="http://www.domain.com/tools" 
  href="livechat.jnlp"> 
  <information> 
    <title>Live Chat</title> 
    <vendor>vendor</vendor> 
    <homepage href="www.domain.com"/> 
    <description>Live Chat Application</description> 
    <icon href="images/logo.png"/> 
    <icon kind="splash" href="images/logo.png"/> 
    <shortcut online="true">
      <desktop/>
      <menu submenu="sub menu name"/>
    </shortcut>
  </information> 
  <security> 
      <all-permissions/> 
  </security> 
  <update check="always" policy="always"/>
  <resources> 
    <j2se version="1.6+" java-vm-args="-esa -Xnoclassgc"/>
    <jar href="lib/livechat-100.jar"/> 
  </resources> 
  <application-desc main-class="package.mainclass"/> 
</jnlp>

これが設定される方法は、jnlp ファイルが www.domain.com\tools\ に保存され、jar ファイルが www.domain.com\tools\lib\ に保存されることです。

この行で、メイン クラスを見つけます。パッケージ (com.domain.application) を使用する場合は、com.domain.application.mainclass を使用します。

それ以外の場合は、メインクラスを引用符で囲みます。

<application-desc main-class="package.mainclass"/>

jar ファイルにも必ず署名してください。瓶署名


XML を作成する必要はありません。メモ帳を開いて空白のページに貼り付け、filename.jnlp として保存すると、正しく保存されます。

JNLP ファイルは、保存先の Web サーバー/サーバーのファイル構造、およびアプリケーションのパッケージ名 (作成した場合) に大きく依存します。次に例を示します。

次の情報で、applet1 という名前の Java アプレットを作成します。 com/tools/lib

jnlp ファイルを www.domain.com/tools に、SIGNED jar ファイルを www.domain.com/tools/lib に保存します。

JNLP ファイル内:

codebase="domain.com/tools" 
href="livechat.jnlp">      (this assumes the file is in my codebase location) 
<jar href="lib/livechat-100.jar"/> 
<application-desc main-class="com.digitalck.applet1.Applet1"/>   

アプリケーション/アプレットやファイルの保存方法に関する他の情報を知らなくても、正しく動作するように変更する主なポイントを示しました。

JNLP ファイルの作成方法

于 2013-03-04T14:00:26.030 に答える