黑马程序员技术交流社区
标题:
配置文件系统提示找不到,应该放在哪里?
[打印本页]
作者:
一直很安静
时间:
2013-11-26 11:17
标题:
配置文件系统提示找不到,应该放在哪里?
问题3:为什么我编写的类在bin里面,但是Java提示找不到文件
注:我配置文件和类放在同一个包中了
import java.io.*;
import java.util.*;
public class ReflectFrame {
public static void main(String[] args) throws Exception{
InputStream ips=new FileInputStream("config.properties");
Properties prop=new Properties();
prop.load(ips);
ips.close();
String className=prop.getProperty("className");
Collection c=(Collection)Class.forName(className).newInstance();
c.add("a");
c.add("mno");
System.out.println(c.size());
}
}
Exception in thread "main" java.io.FileNotFoundException: config.properties (系统找不到指定的文件。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at reflected.ReflectFrame.main(ReflectFrame.java:7)
作者:
RuntimeError!
时间:
2013-11-26 11:29
楼楼 用的是ECILPSE还是直接命令行编译的啊 Eclipse是在工程文件夹下面我记得
命令行的直接就在java目录就好0 0。。
作者:
王雷1
时间:
2013-11-26 11:35
如果是Eclipse的话,你要确定你的报名,下面附上一个我自己写的一个题你看看,应该就能明白了
配置的文件className=com.itheima.DemoClass
下面是代码
public class Test5 {
public static void main(String[] args) throws Exception {
method1();
}
public static void method() throws Exception{
Properties pro=new Properties();
//写了相对路径加载Test5.properties
//用FileInputStream,这三种路径都可以
FileInputStream fis1=new FileInputStream(new File("src/com/itheima/Test8.properties"));
FileInputStream fis2=new FileInputStream(new File("/com/itheima/Test8.properties"));
FileInputStream fis3=new FileInputStream(new File("com/itheima/Test8.properties"));
pro.load(iss5);//加载properties文件
iss5.close();//关闭流
String path=(String)pro.get("className");//因为我定义的key,我就直接通过可以获取值了
System.out.println("-----------"+path);//打印获取出来的value,即类的路径
Class<?> cla=Class.forName(path);//通过字符串加载类
Method m=cla.getMethod("run");//调用类中的方法
m.invoke(null);//执行
}
public static void method1() throws Exception{
Properties p=new Properties();
InputStream is=new FileInputStream(new File("src/com/itheima/Test5.properties"));
p.load(is);
is.close();
String className=p.getProperty("className");
DemoClass name=(DemoClass)Class.forName(className).newInstance();
name.run();
}
}
class DemoClass {
public static void run(){
System.out.println("welcome to heima!");
}
}
作者:
一直很安静
时间:
2013-11-26 11:35
我用的ECILPSE,不是放在和class同一个包里啊?放在整个工程里啊?那如果放在同一个包里可以吗?方同一个放里路径那怎么写?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2