最近阅读了一些tomcat源码,看到tomcat在读取jar包外配置文件,是将“user.dir”的路径作为home path文件即

通过System.getProperty("user.dir")找到相关配置。然后自己做了一些尝试,发现在eclipse执行的时候,

这个user.dir指向工程目录下,貌似是想要的结果,但是继续试验发现,当用于一个windows services

来启动这个jar包的时候,发现没有按照预期的方式将日志写在jar包同目录下打印出来,

十分困惑,后来进一步查看tomcat相关源码,注意到在commons-daemon(c++)源码中,启动jar包前,使用了SetCurrentDirectoryW(SO_STARTPATH)设定了当前exe所在的路径为当前的工作目录,这就是问题点,

设定以后jar包内获取的"user.dir",就为当前的exe所在路径(jar包和exe放在同一个路径下)。

查阅了一些关于"user.dir"的资料,有如下等解释:

1. "user.dir":User's current working directory  (官方) 其实不太好理解

2. 就是运行dos命令的那个目录:

例如:

C:\Documents and Settings\user>java xxx

就是指的C:\Documents and Settings\user这个目录

(在哪里java 哪里就是你的working directory.)

3. 用户当前程序运行的路径(用户当前工作目录)

这个有点豁然开朗的感觉,想想看,执行service的时候,其实已经有了当前的运行程序的路径,而不是exe具体执行的路径

进过测试打印是这个路径:   C:\Windows

所以需要通过SetCurrentDirectory重新设定一下。

java user.dir 设置_关于user.dir的认识相关推荐

  1. java user.dir 设置_使用java系统属性user.dir读取配置文件

    import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Pr ...

  2. java word 颜色设置_如何在Java中为word文档(.doc或.docx)设置背景颜色(页面颜色)?...

    通过像http://poi.apache.org这样的库,我们可以用任何文本颜色创建word文档,但是对于文本的背景或突出显示,我没有找到任何解决方案. 手动方式的单词页面颜色!: 这是我通过poi. ...

  3. java word 颜色设置_通过Java设置Word页面背景色过程详解

    前言 Word中可以针对不同文档排版设计要求来设置背景设置颜色.常见的可设置单一颜色.渐变色或加载图片来设置成背景.下面通过Java来设置以上3种Word页面背景色. 使用工具:Spire.Doc f ...

  4. java word 颜色设置_如何为Word文档在Java中的背景颜色

    展开全部 用第三方吧,比较方便,参考下Free Spire.Doc for Java的方法,这个是免费版,直接用可以了.62616964757a686964616fe58685e5aeb9313334 ...

  5. java 句柄数 设置_修改操作系统句柄数和用户进程数

    对于一般的应用来说(像Apache.系统进程)1024完全足够使用.但是像squid.mysql.java等单进程处理大量请求的应用来说就有点捉襟见肘了.如果单个进程打开的文件句柄数量超过了系统定义的 ...

  6. java 句柄数 设置_技术文档(2)--Linux 句柄数设置情况,问题:java.io.IOException: Too many open files...

    打开的文件过多,一般来说是由于应用程序对资源使用不当造成,比如没有及时关闭Socket或数据库连接等.但也可能应用确实需要打开比较多的文件句柄,而系统本身的设置限制了这一数量. 第一个异常在错误影响到 ...

  7. java 堆栈大小设置_如何增加Java堆栈的大小?

    如何增加Java堆栈的大小? 我问这个问题是为了了解如何在JVM中增加运行时调用堆栈的大小.我已经得到了这个问题的答案,我还得到了许多有用的答案和评论,涉及到Java如何处理需要大型运行时堆栈的情况. ...

  8. eclipse java启动参数设置_[Java教程]eclipse.ini配置eclipse的启动参数

    [Java教程]eclipse.ini配置eclipse的启动参数 0 2013-09-28 01:00:11 Eclipse的启动由$ECLIPSE_HOME/eclipse.ini控制,如果$EC ...

  9. java星空屏幕_[Java教程]窗口设置_星空网

    窗口设置 2016-04-13 0 /** * 这个是GUI的事例程序: * */ package w160412.wang.main;import java.awt.Color; import ja ...

最新文章

  1. 调焦后焦实现不同距离成像_如何用手机拍出单反的效果,系列学习(一)AF参数“自动调焦”...
  2. 【Android framework】AndroidManagerService初始化流程
  3. 企业级整站集群数据备份项目方案详解
  4. sublime c语言如何编译,Sublime Text 3 实现C语言代码的编译和运行(示例讲解)
  5. (19)FPGA乒乓操作
  6. UI实用素材|电商购物类APP界面设计原则!
  7. 努力培养自己对项目的主人翁意识
  8. iOS VideoToolBox decoder解码失败(-12909和-12911)问题解决
  9. oracle-pl/sql之二
  10. 【联合路由频谱分配】多跳认知无线电网络中的联合路由和动态频谱分配的matlab仿真与分析
  11. 利用简单电阻分压原理自动测量电阻
  12. 【Python05】Python转义字符
  13. 广东省考计算机类的比例,广东公务员考试22.4万人参加 竞争比例为19:1
  14. 是时候来一发炸裂的开场了!
  15. 文件查找,打包压缩,解压相关分享
  16. Bingo NFT 如何帮助交易者和投资者分析市场
  17. phpStudy无法打开http://localhost/
  18. 每月一书(202112):《王阳明心学》
  19. Linux批量添加10个用户stu01,stu02....stu10,并设置8位随机密码
  20. 混合蛙跳算法实现步骤与例子

热门文章

  1. Android 学习笔记-时间_日期_记时器_倒计时器
  2. html fmt转换日期格式,JSP JSTL fmt:parseDate标签:转换为时间
  3. php安全新闻早八点-Microdoor-第一季
  4. 用c语言计算运费.c
  5. 《数据库概论》实验(3)-交互式SQL--简单查询
  6. 使用 T-SQL 语句完成单表数据检索
  7. 2021年CS保研经历(一):北邮CS夏令营、北师大AI夏令营、天津大学CS夏令营
  8. 装机员 Ghost Win7 Sp1 64位纯净贺岁版2017
  9. Android 解决RecyclerView瀑布流刷新之后Item位置改变
  10. Bancor协议丨EKT多链技术通往新区块世界的大桥