我觉得程序在任何时候不应该依赖于这个类文件的路径。
如果是为了获取程序的当前路径应该用这个  System.getProperty("user.dir")

解决方案 »

  1.   

    前者基于 App.class 这个文件所在的路径,二打包之后 App.class 这个文件不存在了,所以无法获取。这种方式不靠谱。打包后获取 jar 包当前路径的方法参考这里: http://yiding-he.iteye.com/blog/176005
      

  2.   


    已经有n个java博客上提到System.getProperty("user.dir")是个弥天大坑,因为它在不同环境下的结果更加复杂
      

  3.   


    已经有n个java博客上提到System.getProperty("user.dir")是个弥天大坑,因为它在不同环境下的结果更加复杂
    我一直在多种系统环境下使用,从未发现过有问题啊。包括windows、linux、unix、aix都用过的啊。
      

  4.   


    已经有n个java博客上提到System.getProperty("user.dir")是个弥天大坑,因为它在不同环境下的结果更加复杂
    我一直在多种系统环境下使用,从未发现过有问题啊。包括windows、linux、unix、aix都用过的啊。
    这东西在命令行下得到的是你启动程序的路径,而不是程序的路径,简单的说如果你在命令行下,当前处于/usr/local,你用这个得到的/usr/local,你换个路径,得到的又是另外一个
      

  5.   


    已经有n个java博客上提到System.getProperty("user.dir")是个弥天大坑,因为它在不同环境下的结果更加复杂
    我一直在多种系统环境下使用,从未发现过有问题啊。包括windows、linux、unix、aix都用过的啊。
    这东西在命令行下得到的是你启动程序的路径,而不是程序的路径,简单的说如果你在命令行下,当前处于/usr/local,你用这个得到的/usr/local,你换个路径,得到的又是另外一个这个确实是的,获取的是用户的当前路径。
    一般需要的也应该是当前路径啊,为什么要获取当前程序路径呢?如果对当前路径有什么特殊的需要,完全可以执行的时候,在程序路径下执行啊,这样不就没有问题了。