这个配置文件可能随时修改,所以不能打包进jar中。那么该如何获得这个配置文件的路径呢?
class.getResource()的办法只能获得jar包内部的资源。因此不能使用。
用了getProperty("user.dir")+File.separator+"conf",在windows下可以正确运行。但是在linux下,不行。
比如路径如下:
--software
   --java
      --xxx.jar(jar包)
      --conf(配置文件夹)
         --config.properties(配置文件)
如果在终端中,进入到--java文件层,用javac -jar xxx.jar命令执行,获得路径为/software/java/conf,这个是没有问题的。
但是如果在--java文件层,双击运行jar的话,获得的路径则变成了/software/conf,这样就无法正确获得conf的路径了。
想请教一下各位,这样的情况应该怎么处理?

解决方案 »

  1.   

    一般应该不会点jar包直接执行的,win下应该是用.exe或.bat的,unix用.sh之类,在这类文件中为你的项目设置一个路径(如mydir),然后你项目中所有用到的路径都先获取mydir再加上你的相对路径就行了
      

  2.   

    哦,原来是这样。因为没有实际的工程经验,不太了解linux/unix下面的应用是如何做的。.sh的生成是要手动编写还是有生成工具呢?还请指点一下。谢谢!
      

  3.   

    另外还有一个问题,java编写的程序具备跨平台的灵活可移植性。那如果不是直接运行jar的话,是如何体现跨平台这一优势的呢?程序打成jar包以后,直接准备好exe和sh两种方式吗?
      

  4.   

    .sh可以手写,又没有工具不清楚,跨平台别人是怎么做的我也不清楚,我接触到的是准备2种启动方式(tomcat就是这样的,它的bin下面有很多sh文件就是linux/unix下用的)