当前位置: 技术问答>linux和unix
Linux 当前路径问题
来源: 互联网 发布时间:2016-10-20
本文导语: 我有一个java写的服务程序test.jar 它要读取与他同级目录的Server.xml文件 test.jar中读取Server.xml的路径,直接写作了String xmlPath = "Server.xml";因为他们都在同一个目录。 在windows中我直接双击test.jar运行它,并且它会在当...
我有一个java写的服务程序test.jar 它要读取与他同级目录的Server.xml文件
test.jar中读取Server.xml的路径,直接写作了String xmlPath = "Server.xml";因为他们都在同一个目录。
在windows中我直接双击test.jar运行它,并且它会在当前目录下找到Server.xml去读取内容。
================================================
可是在linux下,就不是这样了。
如果我执行:
[bhy@bhycentos ~]$ java -jar /var/www/html/NewCentOS.jar
运行时会提示找不到Server.xml,因为他认为当前目录是/home/bhy
那么我执行:
[bhy@bhycentos ~]$cd /var/www/html
然后执行
[bhy@bhycentos html]$ java -jar NewCentOS.jar
这样他就认为当前目录是/var/www/html 那么他就在当前路径想找Server.xml。然后正确执行了。
但是我是想直接执行:[bhy@bhycentos ~]$ java -jar /var/www/html/NewCentOS.jar
就能读取Server.xml并运行它。我源码中的相对路径怎么写呢?
我之前尝试写作:String xmlPath = "./Server.xml"; 结果还是不行。
我也在源码中显得到当前路径:
private static String currentPath = System.getProperty("user.dir");
xmlPath = currentPath +"/Server.xml";
在windows中调试,确实是得到了当前工作目录D:JavaWorkFaxProcessingServerNew
可是在linux中执行:java -jar /var/www/html/NewCentOS.jar
提示的当前路径还是/home/bhy
哪位高手知道呀,怎么解决好呢?
test.jar中读取Server.xml的路径,直接写作了String xmlPath = "Server.xml";因为他们都在同一个目录。
在windows中我直接双击test.jar运行它,并且它会在当前目录下找到Server.xml去读取内容。
================================================
可是在linux下,就不是这样了。
如果我执行:
[bhy@bhycentos ~]$ java -jar /var/www/html/NewCentOS.jar
运行时会提示找不到Server.xml,因为他认为当前目录是/home/bhy
那么我执行:
[bhy@bhycentos ~]$cd /var/www/html
然后执行
[bhy@bhycentos html]$ java -jar NewCentOS.jar
这样他就认为当前目录是/var/www/html 那么他就在当前路径想找Server.xml。然后正确执行了。
但是我是想直接执行:[bhy@bhycentos ~]$ java -jar /var/www/html/NewCentOS.jar
就能读取Server.xml并运行它。我源码中的相对路径怎么写呢?
我之前尝试写作:String xmlPath = "./Server.xml"; 结果还是不行。
我也在源码中显得到当前路径:
private static String currentPath = System.getProperty("user.dir");
xmlPath = currentPath +"/Server.xml";
在windows中调试,确实是得到了当前工作目录D:JavaWorkFaxProcessingServerNew
可是在linux中执行:java -jar /var/www/html/NewCentOS.jar
提示的当前路径还是/home/bhy
哪位高手知道呀,怎么解决好呢?
|
那就不好办了
你看好多程序都是到指定的地方去读取文件而已 设定文件变了位置 同样会失败。
|
Linux认为当前路径是一个用户会话的环境变量,所以你在程序中获取的当前路径是就是运行程序时的当前路径。
而windows”大概”认为执行文件的路径才是当前路径,也许windows真的是切换到了那个路径才开始执行程序的,不过,天知道。
而windows”大概”认为执行文件的路径才是当前路径,也许windows真的是切换到了那个路径才开始执行程序的,不过,天知道。