<< NEW | main | OLD>>
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 - -
前回のjarファイルをダブルクリックで実行1からの続き。
今回は自前のデータファイル(csvファイル)の読み込み失敗によって
プログラムが起動できない問題について。
ストリームでテキストとか画像とか読み込むプログラムで、
起動時にエラーは出ないけどダブクリしても反応しねぇーって人向け。
※なお内容については多分に俺の推測が入っており、信憑性はかなり怪しいので注意。
※プログラミング歴約一ヶ月の素人が書いてます。



さてこの場合、おそらく内部的には起動直後に
java.io.FileNotFoundException
あたりが発生してエラー終了していると思われ。
まぁ例外時にアラートでも出すようにすれば確認できるんだろうけど。

ちなみに俺の該当箇所のコードはこんな感じ。
data.csvが自前のデータファイル名ね。

File file = new File("data.csv");
BufferedReader br = new BufferedReader(new FileReader(file));


ここで問題なのが、Fileオブジェクトに相対パスを指定しているってこと。
絶対パスも指定できるけど、それだとアプリとして使い勝手が悪いし。
んで、相対パスの基準となるディレクトリだけど、
Fileクラスの説明見てみると

「デフォルトでは、java.io パッケージのクラスは、
常に現在のユーザディレクトリを基準に
相対パス名を解決します。
このディレクトリはシステムプロパティ user.dir で指定され、
通常は Java 仮想マシンの呼び出し元のディレクトリです。」

ってことで、どうもeclipse上ではこれが
(略)/workspace/プロジェクト名
になっているっぽい(経験的にここにcsvファイル置くとビルドできる
先のコードをビルドする場合はこのような配置にする必要があるわけだ。

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

ところがjarファイルにまとめた場合、基準となるディレクトリが
本体jarがあるディレクトリになると思われる(同じく経験的に
要するにこういう配置にしないと起動に失敗する。

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

とりあえずこの配置にすれば起動できるはず。
これで起動できなかったら、ほかの原因かもしれん。

ただ、アプリ配布を前提に考えた場合、
配布ファイルはできるだけまとまってた方がいいからね。
そこでjarファイルの中にcsvも含められないかなーと考えたわけですよ。
まぁまた長くなってきたので、その方法はまた次の記事で。
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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。