0

問題が発生しています。現在、以下のエラーが発生しています。もちろん、これはユーザーがCにアクセスできないという事実によるものです。それは問題ではありません。問題は、以下への参照が見つからないことです。

  • log4j
  • org.apache.log4j
  • org.apache.log4j.xml.DOMConfigurator

クラスパス、プログラムを構成するすべてのクラスのインポート、プロジェクトに関連付けられたXMLファイルを調べましたが、アイテムへの参照が見つかりません。

プロジェクトから削除できるように、これが参照されている場所を追跡する方法を知る必要があります。

エラー例

java.io.FileNotFoundException: c:\javalog\jhook.log (Access is denied)
at java.io.FileOutputStream.openAppend(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at org.apache.log4j.FileAppender.setFile(FileAppender.java:290)
at org.apache.log4j.RollingFileAppender.setFile(RollingFileAppender.java:194)
at org.apache.log4j.FileAppender.activateOptions(FileAppender.java:164)
at org.apache.log4j.config.PropertySetter.activate(PropertySetter.java:257)
at org.apache.log4j.xml.DOMConfigurator.parseAppender(DOMConfigurator.java:285)
at org.apache.log4j.xml.DOMConfigurator.findAppenderByName(DOMConfigurator.java:171)
at org.apache.log4j.xml.DOMConfigurator.findAppenderByReference(DOMConfigurator.java:184)
at org.apache.log4j.xml.DOMConfigurator.parseChildrenOfLoggerElement(DOMConfigurator.java:502)
at org.apache.log4j.xml.DOMConfigurator.parseRoot(DOMConfigurator.java:471)
at org.apache.log4j.xml.DOMConfigurator.parse(DOMConfigurator.java:921)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:790)
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:682)
at org.apache.log4j.xml.DOMConfigurator.configure(DOMConfigurator.java:811)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.eglue.jhook.logging.Log4jLogger.internalInvokeStaticMethod(Log4jLogger.java:94)
at com.eglue.jhook.logging.Log4jLogger.<init>(Log4jLogger.java:19)
at com.eglue.jhook.logging.LoggerFactory.getLogger(LoggerFactory.java:22)
at com.eglue.jhook.jni.ValuePair.<clinit>(ValuePair.java:11)
at com.eglue.jhook.jni.DataEnvelope.addValue(DataEnvelope.java:52)
at com.eglue.jhook.jni.HookManager.createMMFServer(HookManager.java:169)
at com.eglue.jhook.jni.HookManager.<init>(HookManager.java:116)
at com.eglue.jhook.Hook.init(Hook.java:43)
at com.eglue.jhook.Hook.guiInitialized(Hook.java:38)
at com.sun.java.accessibility.util.EventQueueMonitor.maybeNotifyAssistiveTechnologies(EventQueueMonitor.java:233)
at com.sun.java.accessibility.util.ComponentEvtDispatchThread.run(EventQueueMonitor.java:649)

ヘルプ/アイデア、

4

1 に答える 1

0

私が使用したサードパーティのライブラリが内部的に log4j のコピーを持っていたときに、この同じ問題に直面したことがあります。

次のコードは、log4j がロードされる場所を示します。

DOMConfigurator.class.getProtectionDomain().getCodeSource().getLocation();

これから、考えられる構成ファイルの場所を見つけることができます

于 2013-01-30T03:26:32.410 に答える