为了账号安全,请及时绑定邮箱和手机立即绑定

bash执行java程序时读取文件问题

bash执行java程序时读取文件问题

烙印99 2019-04-16 20:27:12
写了一个java程序,程序启动时会读取和jar包统计目录的myapp.conf文件在linux中通过java-jarmyapp.jar的方式可以正常启动程序但是在把命令加入到rc.local后却无法启动,查看日志发现是不能读取到myapp.conf文件rc.local文件#!/bin/sh#Thisscriptwillbeexecuted*after*alltheotherinitscripts.#Youcanputyourowninitializationstuffinhereifyoudon't#wanttodothefullSysVstyleinitstuff.touch/var/lock/subsys/localexportJAVA_HOME=/usr/java/jdk1.7.0_71exportCLASSPATH=.:%JAVA_HOME%/lib/dt.jar:%JAVA_HOME%/lib/tools.jarexportPATH=$PATH:$JAVA_HOME/binjava-jar/opt/agent/myapp.jar>/opt/agent/myapp.out2>&1&是不是rc.local在执行java程序时会认为脚本所在目录为执行目录?java读取文件的方法publicstaticStringGetFile(StringfileName){StringstrContent="";try{StringstrEncoder=GetEncoder(fileName);BufferedReaderbiFile=newBufferedReader(newInputStreamReader(newFileInputStream(fileName),strEncoder));StringstrSingleLine;while((strSingleLine=biFile.readLine())!=null){strContent+=strSingleLine;strContent+="\n";}biFile.close();}catch(Exceptione){System.out.println(e.getLocalizedMessage());}finally{returnstrContent;}}各位帮忙看看应该怎么办?
查看完整描述

2 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

rc.local由init进程调度,你没有设置当前目录,那么它在执行的时候,当前目录就是/,跟当前脚本(rc.local)所在目录没关系,当然没有你需要的myapp.conf文件
要么你在rc.local里加一句cd/path/to/jar
要么在java代码中制定myapp.conf文件的绝对路径
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 424 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信