Запускаемый JAR не обнаруживает вход в систему. xml конфигурация - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть приложение Java maven, в котором я создал свинг GUI.

Я использую logback-classi c для ведения журнала. logback. xml присутствует в каталоге src / main / resources.

Когда я запускаю приложение с помощью eclipse «Run As Java Application», оно работает как положено, и приложение регистрируется в консоли и в файле журнала.

Но после экспорта приложения в виде исполняемого файла JAR и двойного щелчка, чтобы запустить приложение, оно не регистрируется в файле.

Когда я открыл командную строку и запустил приложение, используя "java -jar myjarfile.jar ", я могу видеть журналы консоли, но она использует конфигурацию обратного входа по умолчанию.

Я попытался задать дополнительный параметр, -Dlogback.configurationFile = "путь к файлу / logback. xml", и я получаю следующую ошибку:

Не удалось создать экземпляр [ch.qos.logback.classi c .LoggerContext] Сообщаемое исключение: java .lang.IllegalArgumentException: имя в sun.mis c .URLClassPath $ Loader.findResource (неизвестный источник) в sun.mis c .URLClassPath $ 1.next (неизвестный источник) в sun.mis c .URLClassPath $ 1.hasMoreElements (неизвестный источник) в java. net .URLClassLoader $ 3 $ 1.run (неизвестный источник) в java. net .URLClassLoader $ 3 $ 1.run (неизвестный источник) в java .security.AccessController.doPrivileged (собственный метод) в java. net .URLClassLoader $ 3.next (неизвестный источник) в java. net .URLClassLoader $ 3.hasMoreElements (неизвестный источник) в sun.mis c .CompoundEnumeration.next (неизвестный источник) в sun.mis c .CompoundEnumeration.hasMoreElements (неизвестный источник) в ch.qos.logback.core.util. Loader.getResources (Loader. java: 73) в ch.qos.logback.classi c .util.C ontextInitializer.multiplicityWarning (ContextInitializer. java: 183) в ch.qos.logback.classi c .util.ContextInitializer.statusOnResourceSearch (ContextInitializer. java: 175) в ch.qos.logback.classi * 10. util.ContextInitializer.findConfigFileURLFromSystemProperties (ContextInitializer. java: 111) по адресу ch.qos.logback.classi c .util.ContextInitializer.findURLOfDefaultConfigurationFile (ContextInitializer. java: 120.log). * .util.ContextInitializer.autoConfig (ContextInitializer. java: 148) в org.slf4j.impl.StaticLoggerBinder.init (StaticLoggerBinder. java: 84) в org.slf4j.impl.Static *oggerBinder. (StaticLog 1058B). : 55) в org.slf4j.LoggerFactory.bind (LoggerFactory. java: 150) в org.slf4j.LoggerFactory.performInitialization (LoggerFactory. java: 124) в org.slf4j.LoggerFactory.getILoggerFactory 10 (Log. *: 412) в org.slf4j.LoggerFactory.getLogger (LoggerFactory. java: 357) в org.slf4j.LoggerFactory.getLogger (LoggerFactory. java: 383) в com.esig nature.tools.templatemigration.Converter GUI. (Converter GUI. java: 35) в java .lang.Class.forName0 (собственный метод) в java .lang.Class.forName (неизвестный источник ) в org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main (JarRsrcLoader. java: 59)

Я не знаю, что мне не хватает, и я хочу войти в систему из запускаемого JAR в файл журнала.

Это сбивает с толку, потому что оно работает из Eclipse, но не из экспортированного запускаемого JAR.

Ниже приведен logback. xml файл.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_HOME" value="C:/template converter logs" />
    <appender name="STDOUT"
        class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name="rollingFile"
        class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy
            class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/applog-%d{yyyy-MM-dd}.log</fileNamePattern>                        
        </rollingPolicy>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level - %msg%n</pattern>
        </encoder>
    </appender>     
    <root level="debug">
        <appender-ref ref="STDOUT" />
        <appender-ref ref="rollingFile" />
    </root>
</configuration>
...