java中如何找到应用程序的存放位置?--------------- 自己写个搜索函数 . : ) import java.io.*; import java.util.*;public class T { public static void main(String[] args) throws Exception { Vector v = new Vector();
search("07.jpg",new File("F:/Yzl"),v);
for (Enumeration e = v.elements(); e.hasMoreElements();) System.out.println(((File)e.nextElement()).getAbsolutePath()); }
for (int i = 0 ; i < files.length; i ++) { if (files[i].getName().equals(filename)) v.addElement(files[i]);
}
for (int i = 0 ; i < files.length; i ++) { if (files[i].getName().indexOf('.') == -1) search(filename,files[i],v); } } }F:\>javac T.javaF:\>java T F:\Yzl\07.jpg F:\Yzl\Y\07.jpg
filename - 要搜索的应用程序名
另,将 if (files[i].getName().indexOf('.') == -1) search(filename,files[i],v); 该为: if (files[i].isDirectory()) search(filename,files[i],v);
可以获得 class 的存放路径。
System.out.println(new File(".").getCanonicalPath());
System.getProperty("user.dir") 实际上也是设置了变量的!
如果是web应用程序可以用 this.getServlet().getServletContext().getRealPath("") 得到应用程序根目录! 如果是在jsp里面那就更方便
自己写个搜索函数 . : )
import java.io.*;
import java.util.*;public class T
{
public static void main(String[] args) throws Exception
{
Vector v = new Vector();
search("07.jpg",new File("F:/Yzl"),v);
for (Enumeration e = v.elements(); e.hasMoreElements();)
System.out.println(((File)e.nextElement()).getAbsolutePath());
}
// 搜索函数
/**
*描述: 搜索函数.
*
*filename - 要搜索的函数名
*path - 被搜索的目录
*v - 存放结果集
*/
public static void search(String filename,File path,Vector v)
{
File[] files = path.listFiles();
if ( files == null) return ;
for (int i = 0 ; i < files.length; i ++)
{
if (files[i].getName().equals(filename))
v.addElement(files[i]);
}
for (int i = 0 ; i < files.length; i ++)
{
if (files[i].getName().indexOf('.') == -1)
search(filename,files[i],v);
}
}
}F:\>javac T.javaF:\>java T
F:\Yzl\07.jpg
F:\Yzl\Y\07.jpg
if (files[i].getName().indexOf('.') == -1)
search(filename,files[i],v);
该为:
if (files[i].isDirectory())
search(filename,files[i],v);
search("WINWORD.EXE",new File("C:/"),v); // 此处是在C盘下找,你可以设定一下.
search("EXCEL.EXE",new File("C:/"),v);