質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

5252閲覧

特定のexceptionのみ文字化け

lupus_dingo

総合スコア257

JAR

JAR(又はJava ARchive)はコンパイルされた複数のJavaバイトコード及び関連ファイルのリソースを一つのファイルに統合したものです。JARファイルはZIPファイルのフォーマットで構築されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2014/11/17 12:13

お世話になってます。
Webアプリを開発していますがいつくか疑問があるので教えてほしいです。

1,jarって普通どこに追加しますか?

・java resources/ライブラリ/の中
・java resources/ライブラリ/web appライブラリの中
・java resources/ライブラリ/新規作成したライブラリの中
・WEB_INF/libの中
など。

2,メソッド間でファイルを受け渡しすることがあると思いますが、
File fileとString filenameならどちらを引数または戻り値に使った方がいいですか?

3,Eclipseのコンソールで特定のexceptionのみメッセージが一部文字化けしているのですがこれを可読にする方法はあるでしょうか?ちなみにひし形の中が「?」になってる文字化けです。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

1.

resourcesというディレクトリーがどんな環境で使われるものか知らないので、一般論としてお答えします。

フレームワークによって異なりますが、WARファイルを作るためには、WEB_INF/libに格納するのが基本です。
他の場所に格納したとしても、WARファイルをビルドする際にWEB_INF/libにコピーしているはずです。

2.

ケースバイケースですが、ひとつの意見としてお答えします。

文字列にしてしまうと、使い勝手が良くなるかもしれませんが、Fileを示す値であることが保証されなくなります。一度Fileに変換したのであれば、わざわざ文字列に戻すのは良くありません。文字列でしか渡せない場所ではその都度File#getPathを使います。
また、Java7以降であれば、java.nio.file.Pathという選択肢もありますが、利用できる場所が限られるので、使う場合は注意が必要です。

戻り値: メソッドの中でFileを生成しているのであれば、Fileを返すほうが良いでしょう。
引数: メソッド側でFileの方が都合が良ければFileが良いでしょう。Fileを利用者に強制すると使い勝手が悪いと考えられる場合は、オーバーロードメソッドでどちらでも受けつけられるようにする方法もあります。

lang

1// オーバーロードの例 2public int method1(String filename) { 3 return method1(new File(filename)); 4} 5 6public int method1(File file) { 7 int n = 0; 8 // 何か処理 9 return n; 10}

3.

Eclipseの「実行」でのコンソール・エンコードの設定が、アプリケーションの要求する文字エンコードと一致していない可能性があります。
メニューの「実行」→「構成及び実行」を開いて、左のツリーから対象のアプリケーションを選択してから、右側の「共通」タブを選択します。そこの右側に、「コンソール・エンコード」という項目があります。これが、実行時に使用している文字エンコードになります。

実行されているアプリケーションが特定できないので何を設定するかは分かりませんが、今どきのアプリケーションであればUTF-8の可能性が高いと思います。

投稿2014/11/18 00:24

argius

総合スコア9390

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

lupus_dingo

2014/11/20 13:48

回答ありがとうございます。 1,web_infが基本なんですね。覚えておきます。 2,いったんFileにしてしまったらFileで渡すようにします。 迷ったらオーバーロードするのもいいですね。 3,コンソールのエンコードはすでに試してみました。しかし、ここを変えると他のexceptionが文字化けしてしまうので違うところに原因が有りそうです。
argius

2014/11/20 14:22

3については、異なるライブラリーで異なる文字エンコーディングを使っていれば、両方を文字化けしないようにすることはできないと思います。
lupus_dingo

2014/11/21 15:40

異なるライブラリです。各ライブラリの文字コードは確認していませんが1つのライブラリのみ文字化けしているのでその可能性が高いですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問