log4jを使用したJAVAバッチプログラムのパス指定エラーの解決方法

このQ&Aのポイント
  • log4jを使用したJAVAのバッチプログラムで、パス指定エラーが発生する場合の解決方法を紹介します。
  • バッチプログラムのディレクトリ構成と、パス指定の問題点について詳しく説明します。
  • 解決方法として、パスを通すための設定方法を具体的に説明します。
回答を見る
  • ベストアンサー

log4jを使用し、JAVAのバッチプログラムを作っております。

log4jを使用し、JAVAのバッチプログラムを作っております。 ○ディレクトリ構成は、 test - pack1   - ※1     - pack2   - ※2     - resources - ※3     - lib    - ※4  ※1:メインプログラム  ※2:この中でPropertyConfiguratorを使用し、log4j.propathiesを読み込んでいる。 ( PropertyConfigurator.configure("resources/log4j.properties"); )  ※3:log4j.properties  ※4:log4j-1.2.8.jar ○悩み testのディレクトリから java -cp .;lib\log4j-1.2.8.jar pack1.Aaa の場合、うまくいくのですが、testの一つ上のフォルダから java -cp test;test\lib\log4j-1.2.8.jar pack1.Aaa  と行うと以下のエラーが出ます。 log4j:ERROR Could not read configuration file [resources/log4j.properties]. java.io.FileNotFoundException: resources\log4j.properties (指定されたパスが見つかりません。) at java.io.FileInputStream.open(Native Method)         ・        ・        ・ ○質問 よくネットで原因を検索するとパスを通せば問題ないと書かれていますが、どのようにパスを通せばよいのでしょうか?

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • SaKaKashi
  • ベストアンサー率24% (755/3136)
回答No.1

>PropertyConfigurator.configure("resources/log4j.properties"); を PropertyConfigurator.configure("log4j.properties"); にして、log4j.propertiesの場所を-cpに含めたらどうでしょう

j-m-n-k
質問者

補足

やってみます。ありがとうございました。

関連するQ&A

  • Javaでlog4jを使ってログ出力を行っています。

    Javaでlog4jを使ってログ出力を行っています。 環境は以下の通りです。 j2sdk1.4.2 log4j1.2.8 log4j.xml内で指定したログファイル(test.log)を別のアプリで開いた状態で Javaプログラムを実行するとコンソールに以下のエラーが出力されます。 【エラー発生処理】 DOMConfiturator.configure(log4j.xml); 【エラー内容】 log4j:ERROR setFile(null, true) call failed java.io.FileNotFoundException : test.log(プロセスはファイルにアクセスできません。 別のプロセスが使用中です。) ファイルを開いているために書き込めず、エラーになってしまうのは良いのですが、 ログを出力しないだけで処理自体は続行してしまいます。 (ログを書き込めなかったらそこで処理を終了したいです。) 「書き込めなかった場合に例外をcatchする」等のことは可能でしょうか?

    • ベストアンサー
    • Java
  • Log4jのインストール

    Java初心者です。Log4Jをダウンロードして、サンプルコードを実行しようとしているのですが、うまく行きません。インストール手順が何か足りないのでしょうか。 環境: OS=MacOSX Java-version=1.5.0_16 (1)Log4jをダウンロードし、解凍して、そのうちファイル名=log4j-1.2.15.jarをソースと同じディレクトリに置く (2)ウェブで探してきたテスト用のサンプルコード(下記参照)をlog4J.javaというファイル名で作成 (3)CLASSPATH=xxx.xxx(ソースのある絶対パス)/log4j-1.2.15.jar; export CLASSPATH を実行してクラスパスを通す (4)javac log4J.javaでコンパイル(エラーは出ず) (5)java log4Jを実行 Exception in thread "main" java.lang.NoClassDefFoundError: log4J 例外エラー発生。なぜだかお分かりでしょうか? import org.apache.log4j.*; public class log4J { static Logger logger = Logger.getLogger(log4J.class); public static void main(String[] args) { BasicConfigurator.configure(); logger.debug("Hello world."); logger.info("What a beatiful day."); } }

    • ベストアンサー
    • Java
  • JAVAのプログラムについての質問です。

    JAVAのプログラムについての質問です。 技術系の学生です。今、卒業研究でJAVAで音声を再生するプログラムを作成しているのですが、調べても解決できないエラーがあったため質問させていただきました。以下にソースコードを示します。 package Sound; import javax.media.*; import java.io.File; import java.net.URL; import java.io.FileNotFoundException; public class Soundonly { public static void main(final String[] args) { try { File f = new File(args[0]); URL url = f.toURL(); Player p = Manager.createRealizedPlayer(url); p.start(); } catch (FileNotFoundException e) { // エラー処理 } } } これをコンパイルしようとすると、 この行に複数マーカーがあります - アクセス制限: 型 Player は必須ライブラリー C:\Program Files\Java\jre6\lib\ext \jmf.jar で制限されているためアクセスできません - アクセス制限: 型 Manager は必須ライブラリー C:\Program Files\Java\jre6\lib\ext \jmf.jar で制限されているためアクセスできません - アクセス制限: 型 Manager のメソッド createRealizedPlayer(URL) は必須ライブラリー C: \Program Files\Java\jre6\lib\ext\jmf.jar で制限されているためアクセスできません アクセス制限: 型 Player のメソッド start() は必須ライブラリー C:\Program Files\Java\jre6\lib\ext \jmf.jar で制限されているためアクセスできません とエラーが出て、コンパイルが通りません。JMFはインストール済みです。 どなたか解決法を教えていただけないでしょうか。よろしくお願いします。

    • ベストアンサー
    • Java
  • java3Dについておききします

    javaのバージョンは1.6.0_27です 困ってる内容は現在javaSDをEclipse3.5で使おうとjavaSDをインストールしてネットで調べながらやってますがうまくいいかないです いまどうなってるか画像をみて欲しいです 上手く言ってない理由はこのようなエラーが返ってなかなかすすみません 説明 リソース パス ロケーション 型 アクセス制限: 型 BranchGroup は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 31 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 SimpleUniverse は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dutils.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 28 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 Transform3D は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 37 Java 問題 説明 リソース パス ロケーション 型 アクセス制限: 型 TransformGroup は必須ライブラリー C:\Program Files\Java\jdk1.6.0_27\jre\lib\ext\j3dcore.jar で制限されているためアクセスできません Java3D_first_test.java /01-01/src 行 34 Java 問題 //****************************************************************************** //Java3D とりあえず動作確認するプログラム //カラーキューブ回転 //****************************************************************************** //============================================================================== //インポート・ファイル import javax.media.j3d.*; import javax.vecmath.*; import com.sun.j3d.utils.universe.*; import com.sun.j3d.utils.geometry.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; import java.util.Timer; public class Java3D_first_test { //============================================================================= //クラスのフィールド //仮想空間全体 SimpleUniverse universe; //オブジェクトのためのグループ BranchGroup group1; //オブジェクトの座標変換のためのグループ TransformGroup transform_group1; //オブジェクトの座標変換のためのクラス Transform3D transform1; //回転角を管理 float rot_value; //============================================================================= //メイン・メソッド public static void main(String[] args) { Java3D_first_test test = new Java3D_first_test(); } } javaSDのライブラリはインポート文はエラー返ってないですが・・・ お優しくお願いします。なにが原因かわからずじまいな状態です

    • ベストアンサー
    • Java
  • 外部jarへのパスの通し方

    はじめまして。パスの通し方について教えてください。 javaを勉強しようと、 j2sdk1.4.1_04 jakarta-log4j-1.2.8 tomcat_5.0.16 eclipse2.1.1 をダウンロードして、環境を設定しようとしているところです。 しかし、外部jar(log4j、tomcat)を使用したSRCをコンパイルしようとしても、javax.servlet.httpが見つかりません等のエラーが出てしまいます。 eclipseでは、外部jarを取り込んでいるので、コンパイルが通って動作確認(log4jのみ)は済んでいます。 ただし、コマンドプロンプトからのコンパイルでは上記のようなエラーが出てしまいます。 PATHは JAVA_HOME: C:\j2sdk1.4.1_04 TOMCAT_HOME: C:\Program Files\Apache Software Foundation\Tomcat 5.0 LOG4J_HOME: C:\jakarta-log4j-1.2.8 CLASS_PATH .;%LOG4J_HOME%\dist\lib\log4j-1.2.8.jar;%TOMCAT_HOME%\common\lib\ant.jar;%TOMCAT_HOME%\common\lib\commons-collections.jar・・・ (C:\Program Files\Apache Software Foundation\Tomcat 5.0\common\lib\配下全てのjar) に設定してあります。(インストールは全てデフォルト、解凍するものはC直下に解凍してあります。eclipseも同様のものを外部jarとして取り込んであります。) 何か、根本的に間違っているのでしょうか? よろしくお願いします。 ★最終的には、MY_SQLを使用しservletからDBアクセスという環境を設定したいと思っています。 長文失礼しました。

  • javaコンパイルバッチ

    javaコンパイル用のバッチファイルを作成しようと思ってますがうまくいきません。どなたかご教授お願いします。 環境 windowsXP java j2sdk1.4.2_16 バッチファイル名 jc.bat 作成したバッチファイルの中身 set PATH=.;C:\JAVA\j2sdk1.4.2_16\bin;C:\JAVA\j2sdk1.4.2_16\jre\bin;C:\JAVA\j2sdk1.4.2_16\lib set CLASSPATH=.;C:\JAVA\j2sdkee1.3.1\lib\j2ee.jar;C:\JAVAsrc javac 実行 C:\JAVAsrc> jc testServlet.java これで作ってみたのですが動きません、実行してみると どうやらjacacの実行結果(使用方法の説明)がでてきました ただ、バッチファイルの最後にjavac testServlet.javaと入れて C:\JAVAsrc> jc 実行してみると、コンパイルができてるのです。 どなたか、原因はわかりますか? それと環境変数は通ってました。 javacの後のtestServlet.javaが認識されてないみたいです

  • j2sdkee1.3.1 で、j2ee が実行できない…

    j2sdkee1.3.1 をインストールしたのですが、j2ee を実行しても、 **************************** /java/re/jdk/1.3.1_02/latest/binaries/linux-i386/bin/java:そのようなファイルやディレクトリはありません **************************** というエラーがでてしまいます。 どうすればいいのでしょうか? どうか分かっている方、教えてください。よろしくお願いします。 <自分インストールの仕方> tar xvfz j2sdkee1.3.1.tar.gz cp -Rf j2sdkee1.3.1 /usr/local/etc/ ***** <.bashrcの設定> JAVA_HOME=/usr/local/etc/j2sdk1.4.0 J2EE_HOME=/usr/local/etc/j2sdkee1.3.1 PATH=$PATH:$JAVA_HOME/bin:$J2EE_HOME/bin CLASSPATH=$CLASSPATH:$J2EE_HOME/lib/j2ee.jar:$J2EE_HOME/lib/locale パスは問題なく通っているのですが… どうかよろしくお願いします。

  • JavaアプレットからローカルJarを利用する方法

    クライアントのローカルフォルダに格納されているJarファイルを Javaアプレットから呼び出して使用することは可能でしょうか? クライアントにC:\Applet\lib\app-test.jarの様に、jarファイルが格納されているとして、 Javaアプレットからこのjarを使用しようするには、どのような設定が必要でしょうか? 現在は、NoClassDefFoundErrorになってしまいます。 eclipseで開発するときは、ビルドパスに上記パスを設定するので、問題なく動作します。 また、app-test.jarをC:\Program Files\Java\jre1.5.0_22\lib\extフォルダに格納すれば、 正常に動作します。 CLASSPATHを設定すれば良いのかと思い、C:\Applet\lib\app-test.jarを クライアントの環境変数(CLASSPATH)に登録しましたが、同じエラーが発生します。 C:\Applet\lib\app-test.jarを利用するために必要設定(環境変数、HTMLのobjectタグ、 java.policyなど)があれば教えてください。 以上

    • ベストアンサー
    • Java
  • xalanを使用してのエラー

    xalanを使用したいのですが、 下記のようなエラーが出てしまいます。 C:\xalan-j_2_7_1\samples\SimpleTransform>java org.apache.xalan.xslt.Process -in test.xml -xslt test.xsl -out test.html (実行文) Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xalan/xslt /Process (エラー) パスが通っていないということは わかるのですが、具体的に何をどうしたら良いのかわかりません。 すでに通しているパスは、 ・システム環境変数 ■CLASSPASS C:\j2sdk1.4.2_16\lib\tools.jar; C:\xalan-j_2_7_1\xml-apis.jar; C:\xalan-j_2_7_1\xercesImpl.jar; C:\xalan-j_2_7_1\xalan.jar ■Path C:\j2sdk1.4.2_16\bin です。 まだ他に通さないといけないものがあるのでしょうか。 ご協力お願いします。 バージョン xalan-j_2_7_1 j2sdk1.4.2_16

  • cygwinでjavaが動かない

    タイトル通りなのですがcygwin1.1上でjavaを動かそうとすると Exception in thread "main" java.lang.NoClassDefFoundError: Example1/java というエラーメッセージが出ます。 しかし、dosプロンプト上でならちゃんと動いたので プログラムのミスという訳でもないと思います。 以下がソースです。 class Example1 { public static void main(String args[]) { System.out.println("This is the output from Example1"); } } クラスパスは以下のような設定です。 /jsdk/lib/jsdk.jar:/jdk/lib/tools.jar:/tomcat/lib/jasper.jar:/tomcat/lib/servlet.jar:/tomcat/lib/webserver.jar:/tomcat/lib/xml.jar:./ 気になることが1つ。コンパイルだけはcygwin上でできるのです。 そしてcygwin上でコンパイルした.classファイルは dosプロンプトで無事に実行できました。 まとめるとcygwinという環境でコンパイルだけできて実行ができない しかしDOSプロンプトだとコンパイルも実行もできる、です。 目的はcygwin上でjavaを実行できるようにしたい、です。 環境は Windows98SE J2SDK1.3 J2EE1.2.1 Tomcat3.1.1 Cygwin1.1 bash 2.04.0(8)

専門家に質問してみよう