java -cp 配置文件目录_java – 使用可执行JAR时指定Log4j2配置文件
使用可执行JAR文件时,我无法指定Log4j2配置文件位置.如果我将所有JAR分开,它可以正常工作,但是当我尝试将它们组合成一个可执行的JAR文件时,由于某种原因,没有从命令行中获取log4j2.xml文件.
我已经尝试了这两种指定位置的方法:
java -Djava.libary.path=..\bin -cp ..\config -jar MyApplication.jar
java -Djava.libary.path=..\bin -Dlog4j.configurationFile=..\config\log4j2.xml -jar MyApplication.jar
这些都没有奏效.我还尝试将包含配置文件的目录添加到JAR清单文件中的类路径中:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.2
Created-By: 1.7.0_21-b11 (Oracle Corporation)
Main-Class: com.abc.MyApplication
Class-Path: ../config/
我也没有成功使用这种方法.我有什么想法可能做错了吗?
在此先感谢您的帮助!
编辑
啊,我相信我误解了这个问题.最初,这是我在命令行输出中看到的错误:
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
但是在我改变事物的某个时刻,错误消息发生了变化而我没有意识到这一点:
ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
所以我想到的是,即使我正在构建的可执行JAR包含其中的log4j-core-2.1.jar和log4j-api-2.1.jar JAR以及MANIFEST文件的类路径,也存在问题.我编写我的ant文件以将库组合到我正在创建的单个JAR中的方式是成功复制目录和类文件,但由于某种原因没有复制其他类型,这显然也是必要的(例如Log4j-config .xsd,Log4j-events.dtd等).
为了解决这个问题,我改变了我在Ant构建文件中合并JAR的方式:
excludes=".svn">
这解决了问题并将所有文件从JAR复制到我新创建的JAR中.
解决此问题后,我上面发布的第二个命令用于指定配置文件的位置. (如下面的@rewolf所述,第一个命令不起作用,因为JAR的MANIFEST中指定的类路径会覆盖命令行上指定的任何类路径.
感谢您的回复,他们肯定帮助我找到了解决错误的正确道路.
java -cp 配置文件目录_java – 使用可执行JAR时指定Log4j2配置文件相关推荐
- java 生产配置文件管理_JAVA基础——使用配置文件
一. 前言 日常我们做项目中,我们经常会遇到这样的情况:由于开发环境和生产环境的不同,项目部署在生产环境之前,有些参数我们并不知道如何取值.例如:数据库链接设定,我们在部署生产环境之前,无法预知客户的 ...
- java环境配置步骤_java环境配置及安装的详细步骤
java环境配置及安装的详细步骤 发布时间:2020-04-22 14:15:59 来源:亿速云 阅读:141 作者:小新 今天小编给大家分享的是java环境配置及安装的详细步骤,相信很多人都不太了解 ...
- java jar 可执行_java基础-可执行jar包
1 简介 大家都知道java项目可以打包成一个可执行的jar包,当我们指定程序的入口main后,可以利用 java -jar YourApp.jar 命令运行可执行jar.那么它需要什么条件才能运行呢 ...
- Gradle:执行命令时指定 JDK 版本
应用场景 在命令行执行 Gradle 时使用的 Gradle 版本为系统环境变量中指定的 Gradle 版本,使用的 JDK 为系统环境变量 JAVA_HOME 指定的 JDK. 来自 Gradle ...
- java spring 配置词典_java之spring mvc之拦截器
java之spring mvc之拦截器 1. springmvc 中的拦截器是由实现 HandlerInterceptor 或者继承 HandlerInterceptorAdapter 来实现的. 2 ...
- java中弹框命令_JAVA提权执行Windows指令
1前言 **平台要求实现FTP账户同步.FTP账户同步分为两步,第一步将平台用户写入FTP服务器(FileZilla Server)配置文件中(Dom4J读写XML文件),第二部重启FTP服务(指令为 ...
- java ssh shell命令_java 通过ssh 执行命令
java 里面的开源 ssh lib jsch 例子 JSch jSch = new JSch(); //设置JSch 的日志,可以看到具体日志信息 JSch.setLogger(new Logger ...
- java中thread实例_Java多线程并发执行demo代码实例
主类:MultiThread,执行并发类 package java8test; import java.util.ArrayList; import java.util.List; import ja ...
- java中字节码_Java字节码执行图示
★ 查看具体的执行图示,需要先了解一下 java 线程执行的地方,Java 每一个线程执行字节码指令都是在 jvm 虚拟机栈中完成 " 1.JVM 虚拟机栈 每一条 JVM 线程都有自己私有 ...
- java如何配置环境_java如何配置环境变量
展开全部 首先下载好jdk,直接双击就可以安装,安装比较简单,基本都是点62616964757a686964616fe78988e69d8331333365653832击"下一步" ...
最新文章
- 介绍下JSP如何进行自动刷新
- poj2756(高精度加减)
- javascript实战pdf_《TypeScript开发实战》总结
- Vue多页应用脚手架
- 计算机老师任课教师寄语,任课老师寄语大全
- php计算一段时间工作日,PHP计算8小时工作日的一半
- 用CONVERT命令转换FAT到NTFS,合适吗?
- Python学习笔记:初识Tushare
- 谷歌 .dev 顶级域名正式开放
- JVM分代垃圾回收策略的基础概念
- mysql自建云盘_使用nextcloud自建私人云盘
- 单片机跑马灯12种c语言程序设计,基于单片机多模式带音乐跑马灯设计附完整程序代码.doc...
- 程序化炒股软件有哪些?
- mysql好玩的代码_MySQL常用命令(1)
- java 打印 xps_使用Java 将PPT转换为PDF、XPS等格式
- 基于51单片机交通灯控制器(东西通行_南北通行_按键启动)
- ftp上传工具下载,八款中文绿色版ftp上传工具下载(ftp客户端)
- 自己拥有一台服务器可以做哪些很酷的事情?
- 从零开始写高性能的人脸识别服务器(二)
- Codeforces868F Yet Another MinimizationProblem