Jarの中のJarについて苦戦したのでメモ
Eclipse上でツールを作成した際に、そのツール(プロジェクト)内でJarを参照する事が
あると思います。
例えばJDBCを使ってデータベースに接続し、SQLを発行してその結果を受け取るようなツールを
作成するとします。
この場合、条件句を初めとするSQLの作成や、ユーザーインターフェースの部分は自作した
としても、JDBCで接続しに行くところは何らかの外部ライブラリを使うと思います。
で、このツール(一つのプロジェクト)自体をJarにすると、内部のJDBC接続Jarは機能しません
(使ってる所でClassNotFoundとか発生したり)。
これを動かす為に以下の設定を行う必要があります。
・ツールJarの作成方法
プロジェクトはEclipseでエクスポート
エクスポート時にマニフェストを指定
・MANIFEST.MFの編集
以下はマニフェストの一例です。
Manifest-Version: 1.0
Class-Path: . プロジェクト内で参照している.jar
Main-Class: jp.co.conpanyname.tool.db.command.upload.ExecCommand
・それ以外の作業
ツールを固めたTool.jarと同じパスに「プロジェクト内で参照している.jar」も置きます。
そしてコマンドやらbatファイルやらで
java -jar C:\csv\Tool.jar 1
などを実行してやると、動きます。
ツールは
「一つのファイルをダブルクリックすれば、その後はマニュアルが無くても直感的な操作で
目的を達成出来る」
事が絶対条件と考えます。
(ごちゃごちゃしてると結局使ってもらえません。使う人はほぼ作成者よりもコーディングや
システム的な事に疎い場合がほとんどですし)
クラスファイルでばらばらな状態で動かすのはそんなに難しい事では無かったのですが、
極力シンプルな形で配布したかったので以上のような事を行いました。
こういう所で妥協し始めると何かが終わる気がしますし……。
0 件のコメント:
コメントを投稿