在类中取得当前文件所在的相对路径与绝对路径 散点分,同时我也放在CJSDN与我的Blog上面了http://www.cjsdn.net/post/view?bid=53&id=133126&sty=1http://iamin.blogdriver.com/iamin/504475.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好,不过就是得到得路径结果是经过URLEncode了最好再decode回来 return java.net.URLDecoder.decode(strURL,"gb2312"); 没有注意,有中文的问题吗?很少用中文作为Java的开的路径,因此忽略了这个问题,不过,你单纯的这样肯定是有问题的,应当在前面进行decode的,完整的程序附后。 package io;import java.net.URL;import java.io.*;/** * <p>Title: 在类中取得当前文件所在的相对路径与绝对路径</p> * * <p>Description: 在类中取得当前文件所在的相对路径与绝对路径</p> * * <p>Copyright: Copyright (c) 1997 - 2005</p> * * <p>Company: Beyond DayBreak Office</p> * * @author YuLimin * @version 1.0 */public class GetClassPath{ public GetClassPath() { super(); } /** * main * * @param args String[] */ public static void main(String[] args) { GetClassPath getclasspath = new GetClassPath(); System.out.println(getclasspath.getClassPath()); } /** * 在类中取得当前文件所在的相对路径与绝对路径 * * @return String */ public String getClassPath() { String strClassName = getClass().getName(); String strPackageName = ""; if(getClass().getPackage() != null) { strPackageName = getClass().getPackage().getName(); } System.out.println("ClassName:" + strClassName); System.out.println("PackageName:" + strPackageName); String strClassFileName = ""; if(!"".equals(strPackageName)) { strClassFileName = strClassName.substring(strPackageName.length() + 1,strClassName.length()); } else { strClassFileName = strClassName; } System.out.println("ClassFileName:" + strClassFileName); URL url = null; url = getClass().getResource(strClassFileName + ".class"); String strURL = url.toString(); System.out.println(strURL); try { strURL = java.net.URLDecoder.decode(strURL,"UTF-8"); } catch(Exception ex) { ex.printStackTrace(); } strURL = strURL.substring(strURL.indexOf('/') + 1,strURL.lastIndexOf('/')); return strURL; }} //测试了下,好象没有问题//java 中文包.GetClassPath//package io;package 中文包;import java.net.URL;import java.io.*;/** * <p>Title: 在类中取得当前文件所在的相对路径与绝对路径</p> * * <p>Description: 在类中取得当前文件所在的相对路径与绝对路径</p> * * <p>Copyright: Copyright (c) 1997 - 2005</p> * * <p>Company: Beyond DayBreak Office</p> * * @author YuLimin * @version 1.0 */public class GetClassPath{ public GetClassPath() { super(); } /** * main * * @param args String[] */ public static void main(String[] args) { GetClassPath getclasspath = new GetClassPath(); System.out.println(getclasspath.getClassPath()); } /** * 在类中取得当前文件所在的相对路径与绝对路径 * * @return String */ public String getClassPath() { String strClassName = getClass().getName(); String strPackageName = ""; if(getClass().getPackage() != null) { strPackageName = getClass().getPackage().getName(); } System.out.println("ClassName:" + strClassName); System.out.println("PackageName:" + strPackageName); String strClassFileName = ""; if(!"".equals(strPackageName)) { strClassFileName = strClassName.substring(strPackageName.length() + 1,strClassName.length()); } else { strClassFileName = strClassName; } System.out.println("ClassFileName:" + strClassFileName); URL url = null; url = getClass().getResource(strClassFileName + ".class"); String strURL = url.toString(); System.out.println(strURL); try { strURL = java.net.URLDecoder.decode(strURL,"UTF-8"); } catch(Exception ex) { ex.printStackTrace(); } strURL = strURL.substring(strURL.indexOf('/') + 1,strURL.lastIndexOf('/')); return strURL; }} 希望大家补充一下,准备提为FAQ的,如何? 不过,我想很少人用中文名来作包名的吧JDK的版本越来越高支持了而已可能核心上面有改变,要不然1.2.2的都不支持中文包名 还是关于Struts2向对象传递数值的问题 hibernate 查询所有 只要有一个字段为null就查不出来数据 Tomcat Native library was not ... aaa 使用jax-rpc时出现Deserializing parameter的问题??? 请问遵守GPL协议的开源中间件我可以直接用于商业软件? rmi调用为什么总是出现端口被用的问题? 急救啊~~~~~~~~~JBOSS4.0怎么配置struts 哪里有Struts的教程下载? 请帮我回答以下问题 Struts中FormBean值保存的问题 关于struts的问题,很急啊,一直解决不了
最好再decode回来
import java.io.*;/**
* <p>Title: 在类中取得当前文件所在的相对路径与绝对路径</p>
*
* <p>Description: 在类中取得当前文件所在的相对路径与绝对路径</p>
*
* <p>Copyright: Copyright (c) 1997 - 2005</p>
*
* <p>Company: Beyond DayBreak Office</p>
*
* @author YuLimin
* @version 1.0
*/
public class GetClassPath
{
public GetClassPath()
{
super();
} /**
* main
*
* @param args String[]
*/
public static void main(String[] args)
{
GetClassPath getclasspath = new GetClassPath();
System.out.println(getclasspath.getClassPath());
} /**
* 在类中取得当前文件所在的相对路径与绝对路径
*
* @return String
*/
public String getClassPath()
{
String strClassName = getClass().getName();
String strPackageName = "";
if(getClass().getPackage() != null)
{
strPackageName = getClass().getPackage().getName();
}
System.out.println("ClassName:" + strClassName);
System.out.println("PackageName:" + strPackageName); String strClassFileName = "";
if(!"".equals(strPackageName))
{
strClassFileName = strClassName.substring(strPackageName.length() + 1,strClassName.length());
}
else
{
strClassFileName = strClassName;
}
System.out.println("ClassFileName:" + strClassFileName); URL url = null;
url = getClass().getResource(strClassFileName + ".class");
String strURL = url.toString();
System.out.println(strURL);
try
{
strURL = java.net.URLDecoder.decode(strURL,"UTF-8");
}
catch(Exception ex)
{
ex.printStackTrace();
}
strURL = strURL.substring(strURL.indexOf('/') + 1,strURL.lastIndexOf('/'));
return strURL;
}
}
//java 中文包.GetClassPath//package io;
package 中文包;
import java.net.URL;
import java.io.*;/**
* <p>Title: 在类中取得当前文件所在的相对路径与绝对路径</p>
*
* <p>Description: 在类中取得当前文件所在的相对路径与绝对路径</p>
*
* <p>Copyright: Copyright (c) 1997 - 2005</p>
*
* <p>Company: Beyond DayBreak Office</p>
*
* @author YuLimin
* @version 1.0
*/
public class GetClassPath
{
public GetClassPath()
{
super();
} /**
* main
*
* @param args String[]
*/
public static void main(String[] args)
{
GetClassPath getclasspath = new GetClassPath();
System.out.println(getclasspath.getClassPath());
} /**
* 在类中取得当前文件所在的相对路径与绝对路径
*
* @return String
*/
public String getClassPath()
{
String strClassName = getClass().getName();
String strPackageName = "";
if(getClass().getPackage() != null)
{
strPackageName = getClass().getPackage().getName();
}
System.out.println("ClassName:" + strClassName);
System.out.println("PackageName:" + strPackageName); String strClassFileName = "";
if(!"".equals(strPackageName))
{
strClassFileName = strClassName.substring(strPackageName.length() + 1,strClassName.length());
}
else
{
strClassFileName = strClassName;
}
System.out.println("ClassFileName:" + strClassFileName); URL url = null;
url = getClass().getResource(strClassFileName + ".class");
String strURL = url.toString();
System.out.println(strURL);
try
{
strURL = java.net.URLDecoder.decode(strURL,"UTF-8");
}
catch(Exception ex)
{
ex.printStackTrace();
}
strURL = strURL.substring(strURL.indexOf('/') + 1,strURL.lastIndexOf('/')); return strURL;
}
}