paip兼容windows与linux的java类根目录路径的方法
1.只有 pathx.class.getResource("")或者pathx.class.getResource(".")才是在linux,widdows下获取的路径一致。。都是class的实现路径..不过没方法获得root path..
其他的都不一致---widdows得到class root, linux却是/root/。。。
比如class.getResource("/")以及class.getClassLoader().getResource
2.只好从中截取路径了。。
但是在com下的路径截取却得到pinyin*.jar的奇怪路径,估计java的bug。。com.attilax.io这个路径走好着了.
public static String classPath()
{
//URL u=new URL()
//jeoig linux hamyar cheng leig ***.jar! le ..
// return new File( classpathGetter.class.getResource("").getPath()).getParent() ;
String path = pathx.class.getResource("").getPath();
int index=path.lastIndexOf("/");
String path_sub=path.substring(0, index-15);
return path_sub;
}
作者Attilax 艾龙, EMAIL:1466519819@qq.com
来源:attilax的专栏
地址:http://blog.csdn.net/attilax
///////////////mmseg中的获取路径
RL url = Dictionary.class.getClassLoader().getResource("data");
却是可以的。。
但是使用 getResource(""); 却不行,得到的/root/ in linux..
getResource("com")也很离谱,居然是pinyin*.jar
////////////////在内jar 还是classes 的类都是一样的效果...
public class pathx {
/**linux
* file:/root/
file:/root/
null
file:/root/
-------1-------
file:/root/
null
file:/root/
-------2-------
file:/root/
null
file:/root/
----
file:/imServer/WebRoot/WEB-INF/classes/com/attilax/io/
file:/root/
file:/imServer/WebRoot/WEB-INF/classes/com/attilax/io/
------//////////////windows
file:/D:/workspace/imServer/WebRoot/WEB-INF/classes/
null
file:/D:/workspace/imServer/WebRoot/WEB-INF/classes/
-------1-------
file:/D:/workspace/imServer/WebRoot/WEB-INF/classes/
null
file:/D:/workspace/imServer/WebRoot/WEB-INF/classes/
-------2-------
file:/D:/workspace/imServer/WebRoot/WEB-INF/classes/
null
file:/D:/workspace/imServer/WebRoot/WEB-INF/classes/
----
file:/D:/workspace/imServer/WebRoot/WEB-INF/classes/com/attilax/io/
file:/D:/workspace/imServer/WebRoot/WEB-INF/classes/
file:/D:/workspace/imServer/WebRoot/WEB-INF/classes/com/attilax/io/
* @param args
*/
public static void main(String[] args) {
System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));
System.out.println(Thread.currentThread().getContextClassLoader().getResource("/"));
System.out.println(Thread.currentThread().getContextClassLoader().getResource("."));
System.out.println("-------1-------");
System.out.println(pathx.class.getClassLoader().getResource(""));
System.out.println(pathx.class.getClassLoader().getResource("/"));
System.out.println(pathx.class.getClassLoader().getResource("."));
System.out.println("-------2-------");
System.out.println(ClassLoader.getSystemResource(""));
System.out.println(ClassLoader.getSystemResource("/"));
System.out.println(ClassLoader.getSystemResource("."));
System.out.println("----");
System.out.println(pathx.class.getResource(""));
System.out.println(pathx.class.getResource("/"));
System.out.println(pathx.class.getResource("."));
System.out.println(pathx.class.getResource("").getPath());
}
}