<< NEW | main | OLD>>
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 - -
前回やっとプログラムの起動に漕ぎ着けたのはいいけど、
やっぱ自前のデータファイルが裸で転がってちゃ格好悪いわけですよ。
んで今回はそのデータファイル(csvファイル)ごとjarにしちゃおうって話。

話を進めるにあたって、各ファイルの名称はこんな感じにしてみた。
自分の環境に合わせて脳内変換よろしく。
完成後のjarファイル: main.jar
jarに含めたいテキストファイル: data.csv
マニュフェストファイル: manifest.mf



さて前回見たとおり、Fileオブジェクトに相対パスを渡した場合、
その基準となるのはmain.jarが置いてあるディレクトリっぽい。

main.jarが置いてあるディレクトリ
├ main.jar
└ data.csv

もしこれが正しければ、main.jar内のdata.csvの相対パスは・・・

File file = new File("main.jar/data.csv");

うわぁ・・・これはひどいwww
jarはアーカイブなのでファイル扱いだから、
いくらなんでもこれは無理ってもんですぜ旦那wwww
・・・一度やりましたがなにか?

さぁ困ったぞって思ってたところに救世主発見。
jarにリソースファイルを含める方法、それをプログラムから使う方法
これこれ、まさに俺がやらんとしてたことだよ!!
早速俺のコードも変更してみる。

InputStream is =
    getClass().getClassLoader().getResourceAsStream("data.csv");
BufferedReader br =
    new BufferedReader(new InputStreamReader(is));


ブログの横幅狭くてサーセンwwww
2ペインのにしようかな・・・

えーと、ストリームって未だによく分からないんだけど、
どうやらファイル名を一旦バイトコードに変換して探してるらしい。
でも重要なのはそこじゃなくて多分クラスローダってやつだと思うんだ。
一応調べてはみたんだけどムズカシクテよくわからんかった(;・∀・)
まぁ原理はともかく、これでmain.jar内data.csvを探してくれると。

ただしこのコードをeclipseでビルドする場合は、
data.csvを次のような位置に置かないとビルドエラーになる。

workspace
└ プロジェクト名
  └ bin
    ├ パッケージ名
    │ └ クラスファイル名.class
    └ data.csv

今までの仮説からすると、プロジェクト名のフォルダが
カレントディレクトリになるはずなんだけど・・・
何故かはわからんが、まぁそこはクラスローダのせいってことでw



んじゃ次にdata.csvファイル含めたmain.jarファイルを作りますか。
ほんとはeclipseでエクスポートしたいんだけど、
うちのeclipse3.3だと何故かdata.csvを取り込んでくれない。

20080312_06.jpg

エクスポート画面にdata.csvファイルが表示されないんだよね・・・
どこかで設定できるとは思うんだけど。

あと調べたてみたらantっての使うとできるって話だけど、
なんかxmlとかめんどくさそうだったからこれもパス。
まぁ、そのうち・・・ね?

んで結局DOS窓の出番ですよw
まず任意の作業フォルダに以下の構成でファイルを並べます。

作業フォルダ
├ パッケージ名
│ └ クラスファイル名.class
├ data.csv
└ manifest.mf

んでカレントディレクトリを作業フォルダに移してから以下を入力。
jar cfmv main.jar manifest.mf *
コマンドについては単にjarって打てば詳細が見れるので
よくわからない方はご自分で調べてくださいな。

さ、これでdata.csvが入ったmain.jarができましたよ。
ダブクリで起動できましたかな?
起動しない場合は多分階層の問題だと思うので、
data.csvの位置をいろいろ変えて試してみてください。
例のクラスローダの件がまだ俺の中で未解決なので(;・∀・)



てかここまできたらswt.jarもmain.jarに詰めたくね?
・・・詰めたいんですよね?
しょ、しょうがないですね////
そこまで言うならry(シュレリア様的な意味で

ってことで次回はswt.jarの詰め方をば。
気になる方は引き続きどうぞ。
Java comments(0) -


コメント


フォーム

ブログ内検索

自作ツールなど
■棒読みちゃんプラグイン
2ch専用ブラウザ読み上げ(改良版)

■IntelliPark設定ツール
WDIDLE3 for Windows

■マウスユーティリティ
Wheelpool

■ユーザー入力監視ソフト
iDLEM@STER

■さぽている攻略 [公開終了]
さぽつ~る(さぽつーる)
アイテムリスト成型
調合成功率計算
カテゴリー別

openclose

プロフィール

百合亞

Author:百合亞
敬虔な百合信仰者かつ崇拝者
将来の夢は女の子

管理人にメール

お名前:
メール:
件 名:

りんく
ことのはアムリラート

美少女万華鏡 -罪と罰の少女-

FLOWERS

2017年5月26日発売のNavel新作『月に寄りそう乙女の作法2.1エスパル』を応援しています!

「天結いキャッスルマイスター」応援中!

『想いを捧げる乙女のメロディー』2017年3月24日発売予定

オトメ*ドメイン

eye★phon(アイ・フォン)『つい・ゆり ~おかあさんにはナイショだよ~』

AXL新作第12弾「恋する乙女と守護の楯~薔薇の聖母~」 2016年1月29日発売予定!

お嬢様と秘密の乙女

カミツレ

【ハピメア】応援バナー

【白雪の騎士】応援バナー

ノブレスオブルージュ

シロガネオトメ

『ヒメゴト・マスカレイド』応援中!

屋上の百合霊さん

天使の羽根を踏まないでっ

「キミとボクとエデンの林檎」公式サイトへ

『るいは智を呼ぶファンディスク』を応援しています!

『処女はお姉さまに恋してる ~2人のエルダー~』絶賛発売中!!

りんく2
藤真拓哉オフィシャルブログ
CrystalDiskInfo - 水晶雫

マリかう

Powered by FC2 Blog    Templete by hacca*days.

PR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。