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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

6645閲覧

eclipse でプロパティファイルをパス指定する方法

startPG

総合スコア11

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2018/07/29 04:40

編集2018/07/29 08:20

こんにちは。いつもお世話になっております。
今回はファイルのパス指定に関してです。

前提・実現したいこと

プロパティファイルに記載している定数を取得したく、該当ファイルを相対パス指定しているのですが下記のエラー通り指定できていない様子です。

java.io.FileNotFoundException: WEB-INF\config\QandA.properties (指定されたパスが見つかりません。)

ファイル構成は以下の通りです。
●パス指定元
[project]-[src]-[jp]-[co]-[×××]-[utility]-[Property.java]
●パス指定先
[project]-[WebContent]-[Web-INF]-[config]-[property.properties]

Property.java

public class Property { private static Properties properties = new Properties(); private static final String path = "/WEB-INF/config/QandA.properties"; static { try { InputStream inputStream = new FileInputStream(path); properties.load(inputStream); } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } } /** * プロパティファイルから、指定された key 値に対する value 値を返すメソッド * * @param key * @return value 値 */ public static String getProperties (String key) { return properties.getProperty(key); } }

試したこと

パス指定に関して調べたところ、プロジェクトから始まるから src 直下なら
src/hoge/piyo/... だとも
WebContent 直下なら /WEB-INF/... だとも…
わからなくなってとりあえず色々設定して動かしてみるも同様のエラーが出るのみでした…

知りたいこと

纏めると2点ございます。

  1. 上記のファイル構成でプロパティファイルを指定する方法
  2. その他パス指定に便利な設定方法など(環境は eclipse となります)

何か必要な情報等ありましたら追記致しますのでコメントいただけると幸いです。
以上となります、よろしくお願いいたします。

追記

mts10806 様より

コードからしてServletと思ったのですが、そういうことではなかったのですか…

実行している環境、状況を質問本文に追記しておいてください。

もしかしたら認識が間違えているかもしれませんが追記致します。

考え:
やりたいこととしては上記にある Property クラスを Utility クラスのような扱いにしたく、
そのクラス内でパスの指定から値の取得まで行わせたいと考えております。

環境:eclipse, Tomcat6
使用しているもの: java, jsp, servlet, js, oracle
状況:
jsp 上で db の値を格納した bean から値を出力したい。

重要度を示す欄があり、日本語をそのまま db に格納するのは避けたいことから
文字列の代わりに数字を db に格納 ⇒ bean に格納するタイミングで取得した値に応じた文言を取得したい ⇒ プロパティファイルに定数として用意。
例:"1" なら "いつでも" など

可能ならそうした処理はそれ用のクラスでやらせたいことから Property クラスを作成。

以上となります。不足点などあればお手数ですがご指摘いただけますでしょうか。

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

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

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

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

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

guest

回答1

0

置く場所はともかくとして、絶対パス的にしたいのであればいきなり/から始めるのではなく、コンテキスパスから取得するように書くと良いと思います。

投稿2018/07/29 05:21

m.ts10806

総合スコア80850

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

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

startPG

2018/07/29 06:50

回答ありがとうございます。 試したところエラーが出ず値を取得できていることが確認できました!(なんか文字化けしてますが…) 確かにイメージしていたのは絶対パスのような記載方法でした。もう少し勉強が必要ですね… しかし提示していただいたURLを拝見し動かしてみたところ SevletContext クラス周りの処理が Servlet 上からしか実行できない様子… もし java クラス上から指定できる方法があればご教示いただけないでしょうか。
m.ts10806

2018/07/29 06:54

コードからしてServletと思ったのですが、そういうことではなかったのですか… 実行している環境、状況を質問本文に追記しておいてください。
startPG

2018/07/29 07:04

承知しました。ただいま編集しますので少々お待ちください。
startPG

2018/07/29 07:15

編集完了いたしました。 ただ書いた通り認識にずれがありましたら申し訳ありません。 締めの通り不足要素等あればお手数ですがご指摘いただけますでしょうか。 それではよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問