NetBeans で作成した GUI アプリケーション配布時の疑問2008年09月11日 13時04分06秒

NetBeans はプロジェクトのディレクトリ内に dist と言うディレクトリを作る。その中に、project.jar を作成し、さらに lib と言う名前のディレクトリを作って、必要な jar ライブラリファイルを置く。

dist の中の README.txt を見ると以下のような事が書かれている。


========================
BUILD OUTPUT DESCRIPTION
========================

When you build an Java application project that has a main class, the IDE
automatically copies all of the JAR
files on the projects classpath to your projects dist/lib folder. The IDE
also adds each of the JAR files to the Class-Path element in the application
JAR files manifest file (MANIFEST.MF).

To run the project from the command line, go to the dist folder and
type the following:

java -jar "Project.jar" 

To distribute this project, zip up the dist folder (including the lib folder)
and distribute the ZIP file.

つまり、この dist 以下のファイルを一つにまとめて zip ファイルとして配付するように書かれている。

そうなると、これをダウンロードしたら展開してもらう必要が出てくる。展開すると複数のファイルが出てくるので、幾つかのバージョンがあったり、他からの NetBeans を使ったプロジェクトが散乱していると、同じファイル名で厄介な事になりそうだ。

そこで、この jar ライブラリを展開して、一度取り出した後に Project.jar の中に含むことが出来ないかと思っている。そうすれば、一つのアプリケーションに付き一つのファイルにまとめられる。ファイルが大きくなるが、特に初心者には混乱が少なくなっていい。

jar ファイル、Java 言語自体はこのやり方でも問題なく起動する。気になるのはライセンスだ。公開しようと思っているプログラムがあるが、今の時点ではソースは公開したくない。

lib の中にあるファイルを見る。


% ls lib
appframework-1.0.3.jar  swing-layout-1.0.3.jar
beansbinding-1.2.1.jar  swing-worker-1.1.jar

swing-worker は Java 1.6 から標準となり、JRE と共に配付されている。それ以外は、dev.java.net で LGPL で配付されているライブラリだ。 appframeworkbeansbindingswing-layout となる。

dist ファイル以下の構成を使うとしたら、自分のプログラムは明らかに、派生物 (derivative works / combined works) だ。自由にライセンスを決めることが出来る。もし、一度 jar ファイルをばらしたからと言って、ライブラリとしての機能が変わるわけでもなく、インターフェースも変わらない。何よりも、class ファイルが提供する物は一切変わらない。そこで、存在するファイルの場所こそ違え、自分のプログラムが 改変物 (modified versions) になるとは思えない。

LGPL について、再度調べてみるつもりだ。しかし、出来るようだったら NetBeans の様に無料で使える統合開発環境 (IDE) で、生成されたプログラムに第三者のライブラリが必須になるのであるのなら、BSD License などの単純で緩いライセンスの物を使って欲しいものだ。LGPL であっても配付しようとなると色々と手間もかかるし、色々と制約が厳しい。

折角、NetBeans で簡単に GUI が作れるようになったのに、その配付で頭を悩ませていたり、余計な作業が増えたら、折角の魅力も薄れる。

次回

コメント

_ とおりすがりの人 ― 2008年09月13日 12時35分22秒

Javaがデスクトップ領域で思った以上に伸びないのはデプロイするのに色々必要ということに気づいてほしいですよね。

java xxx なんて実行させたくないし、となるとランチャ書くし・・・
プライベートJREを使おうと思うとこれまた大変。

いっそのことリンカを配ってほしい!
なんておかしな発想まで出てきてしまう。

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2008/09/11/3755674/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。