nDiki : JAR

JAR - Java Archive

アーカイブファイルフォーマット

メモ

Ant で 2つの jar ファイルをマージする → jar タスクの zipfileset を使う。

起動可能な JAR

Main-Class: を指定したマニフェストを設定しておく。

 Manifest-Version: 1.0
 Main-Class: 起動したいクラス名

という内容のファイルを作り

 jar cmf マニフェストファイル名 JARファイル名 入力ファイル名..

を実行する。

 java -jar JARファイル名

で起動(実行)できるようになる。

Windows ならダブルクリックで起動できる。

関連情報

スポンサード リンク

2004年4月19日 (月)

Eclipse 3.0M8

[ Java ]

ここ最近めっきり仕事でコーディングしていないところに社内向けのとあるミニツールが欲しいという要望がでたため、喜んで引き受けることに(別の仕事もたまってはいるのだが)。

Perl でちゃちゃっと作れる内容なのだが、Windows で利用してもらうには ActivePerlインストールの他に、必要なライブラリとミニツールのパッケージ(PPM)を入れてもらわなければならなくなるので、ちょっと面倒。 プログラムの更新も手間だし。

ということで久しぶりに JavaEclipse も半年以上見ないうちに結構変わったな。 ノート PC を新しくしたから以前みたいにメモリ不足で苦しむことなく使用できるようになった(というか落とすのが面倒なので起動しっぱなし)。 しかし 1024x768 GTK2 だと狭いな。

ついでにSWTベースでコードを書こうかと思ったが、一晩で仕上げるには知識不足なので普通に Swing に。 Java Web Start用に jnlp を書いて、JAR ファイルに電子署名してミニツール完成。

スポンサード リンク
[ 4月19日全て ]

2004年6月21日 (月)

Java Web StartBasic 認証

JNLPファイル自体は Web ブラウザが GET するので普通のBasic 認証と同じ。 JARファイルはアクセスする際に javaws が必要なら認証用のダイアログを出す。 ということで、一応 Java Web Start アプリケーションに Web サーバ側で認証はかけられるようだ。

それからJNLPファイルで offline-allowed を書いておいても、一度実行して javaws のキャッシュに保存されたJARファイルは、オフラインでも直接 java を使えば実行できる事も確認。

[ 6月21日全て ]

2004年7月19日 (月)

PAR

いやな日記で紹介されている PAR を試してみた。 PARWindows に限らず実行形式のファイルを生成する事ができる (UNIX 系ではメリットは少ないかもしれないが)。

PAR ファイル (ZIP) として必要なスクリプトやモジュールをパッケージ化できるのも嬉しい。 Perl は便利なのだが他人に使ってもらう時に面倒で JavaJAR ファイルが羨しかったのだが、まさにそれを実現してくれる (実行可能ファイルにしてしまうともっとお気楽)。

また PAR ファイルHTTPサーバ上においておいてリモートから取得できる機能もあり、Java Web Start に近い使い方ができそうである。

Debian BOX に入れて遊んでみた。sid でもパッケージになっていないので dh-make-perl でパッケージ化してつっこむ。

スクリプトを実行可能形式に

 $echo 'print "hello\n";' > hello.pl
 $perl hello.pl
 $pp -o hello hello.pl
 $ls -l hello
 -rwxr-xr-x  1 naney naney 1739227 2004-07-19 22:09 hello
 $file hello
 hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped
 $./hello
 hello

スクリプトを PAR ファイル

 $pp -p -o hello.par hello.pl
 $zipinfo hello.par
 Archive:  hello.par   1184 bytes   5 files
 drwxr-xr-x  2.0 unx        0 b- stor 19-Jul-04 22:13 script/
 -rw-r--r--  2.0 unx       17 t- defN 19-Jul-04 22:12 script/hello.pl
 -rw-rw-rw-  2.0 unx      262 b- defN 19-Jul-04 22:13 script/main.pl
 -rw-rw-rw-  2.0 unx      434 b- defN 19-Jul-04 22:13 MANIFEST
 -rw-rw-rw-  2.0 unx      214 b- defN 19-Jul-04 22:13 META.yml
 5 files, 927 bytes uncompressed, 678 bytes compressed:  26.9%
 $parl hello.par
 hello

ワンライナーも実行可能形式に

 $pp -o hello -e 'print "hello\n"'
 $ls -l hello
 -rwxr-xr-x  1 naney naney 1739237 2004-07-19 22:19 hello
 $file hello
 hello: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), stripped
 $./hello
 hello
[ 7月19日全て ]

2004年12月2日 (木)

JRE をバンドルしたインストーラNSIS で作る

Java で書いたプログラムを Windows ユーザに提供する時に、Java の実行環境の事とかを考えるのが面倒くさい。 頼まれて自分がセットアップする時も面倒くさい。

やっぱりJARファイル化したプログラムに JRE をバンドルしたインストーラNSIS あたりで作れるようにしておいた方が、あとあと楽そうだ。

JRE

しかし JRE のバンドルの話を取り扱かっている記事ってあまりみかけない。 JRE 1.4.2_06 の README.txt などに再配布の事が書いてあるのだけれど、いまいちすっきりしないところもある。例えば

All files not in these lists of optional files must be included in redistributions of the runtime environment.

とあるんだけれど、All files ってどれよ。 WindowsJRE インストーラを実行して実際にインストールした後、インストール先にあるファイルって判断で良いのかな。多分。

それから、「それらをディレクトリごとコピーすれば他でも動くかどうか」という事に関する記述が見つけられないのがちょっと気持ち悪い。大丈夫っぽいんだけれど。

NSIS

NSIS 側はディレクトリまるごとインストール(File /r jre)と、アンインストール時にまるごと削除 (RMDir /r "$INSTDIR\jre") で OK。 実行に関しては NSIS Archive の Examples にある記事「Java Launcher」を参考に起動のための exe を作るなどすれば良い。 これは NSISスクリプトを用いて「java.exe を探し出して指定したパラメータで呼び出す exe ファイル」を作るというもの。

NSISインストーラを作るためのソフトであるが、NSISコンパイラでちょっとしたプログラムも書けるよという事を示す面白い例でもある。 これぐらいの用途であれば結構コンパクトな実行可能ファイルを吐いてくれる。

[ 12月2日全て ]

2004年12月6日 (月)

JSmoothWin32 上でのJava プログラム起動ファイル作成

最近、Java プログラムを Win32 上で簡単に起動できるようにする方法を調査中。

JSmooth 0.9.7 を試してみる。 JSmooth 自体も Java アプリケーションなので、Linux で動くかと昨日試してみた(ソースをとってきて ant jar; ant run)のだがうまく動かなかった。 ということで今日 Windows 上で。

GUIベースなので使い方を一度覚えれば比較的簡単に使える。

など。手軽であるが、生成したランチャ(JARファイル埋め込み無し)で、約400KB弱となった。でかい。

NSIS で同様のランチャ(こちらも簡単なJVM検索はあり。ページへの誘導はなし)を生成すると、30KB強。 NSIS なら Linux でも生成できる事を考えると、JARファイルの exe 埋め込み機能以外は NSIS の方がよさそうだ。

[ 12月6日全て ]

2009年2月24日 (火)

今日のさえずり: 納品されたプログラムが全く動かなかった時の気持ち

2009年02月24日

  • 12:14 今日はおにぎり持参なのでコンビニの豚汁プラス。 *P3
  • 14:42 Apache License, Version 2.0 読む。 *P3
  • 15:08 え、プロパティファイル作成した後、JAR ファイルに追加してからその JAR ファイルを起動しなければならないの? なんで起動してから読まないの? *P3
  • 15:47 雨降っているのでおやつ買いにいくの我慢している。 *P3
  • 15:52 @zakwa 財布マスク準備してジャケット着ようと思ったところでグッと我慢した。多分 17:00 頃に次のおかし欲求が来る。 *P3
  • 16:36 JRE には jar コマンド入ってないの? *P3
  • 17:56 納品されたプログラムが全く動かなかった時の気持ちがよくわかった。 *P3
  • 17:57 この気持ちをペイ・フォワードしたくないのだけれども……。 *P3
  • 19:50 かえるメール忘れてた。 [mb]
[ 2月24日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.092388s / load averages: 2.28, 1.16, 0.62
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker