我做了一个package,由几个类文件组成,我现在要单独调试其中的一个类,这个类里面有一个main函数,编译都通过了,可是运行的时候老是提示找不到其中所需要打开的文件。我不确定我文件存放的位置是否正确。在这里请教一下各位大虾,所需的文件要放在哪里,package里面的类文件才能access到。谢谢!

解决方案 »

  1.   

    你是怎么编译的?如果运行的是一个包的CLASS,那么要使用 java yourpackage.name
      

  2.   

    我不是用javac编译的,我直接用JCreator里面Builder里面的那个compile命令
      

  3.   

    你的 包  /test/Hello.java编译是:你要进入 test 所在的目录:
    javac test/Hello.java执行还是在这个目录:
    java test.Hello
      

  4.   

    我可不可以直接在JCreator下编译呢,因为如果在javac下编译,我要把包里面所有的相关类都先编译一遍,要不然直接编译当前这个类要需要调用其他类里面的方法都认不到。
      

  5.   

    我今天刚刚调试成功了,比如你的东西放在C:\aa\c5里面,然后你在你的CLASSPATH后面添加上这个地址“;C:\aa”(然后重新启动机器),你在你package的文件里面都写上package c5;调用的时候在开始地方写import c5.*;就可以了,不知道我说的楼主能不能理解,我是今天下午用了一个下午的时间才调试出来的,呵呵,大家都是初学者,不容易呀,多多理解吧。
      

  6.   

    十分感谢hotdog911的热心解答。但是好像有一点不是很清楚,我并不是创建了一个包而调用不到,而是说包里面的一个类需要打开一个文件比如“1.txt”,但是我不太清楚“1.txt”应该放在那个目录下,我已经放在package的目录下,和scr类源文件的目录下都试过了,可是还是编译的时候老说找不到“1.txt”这个文件。
      

  7.   

    1、如果是web工程,可以去tomcate的路径
    String strPath = request.getSession().getServletContext().getRealPath("/");
    strPath = strPath + "/1.txt";
    BufferedReader bin = new BufferedReader(new FileReader(strPath));
    2、也可以写一个通用的配置文件,将路径定死
    以后每次读文件都在这个文件如C:\\config.txt获得路径
    在config.txt中写path=e:\\web\\1.txt
    FileInputStream fin = new FileInputStream("C:\\config.txt");
    java.util.Properties pt = new java.util.Properties();
    pt.load();
    String strPath = pt.Properties();
    3、也可以将类和文件写在一个包里边,假设包名为com
    BufferedReader in = new BufferedReader(new FileReader(System.getProperty("user.dir") + System.getProperty("file.separator") +"com/1.txt"));看看哪种方法适合你,可以试试~~~
      

  8.   

    javac -d 路径 文件名.java.
    然后添加 路径 到CLASSPATH中,就可以了
    没楼上的朋友们说的那么复杂
    比如我的
    package com.beens.unit然后用javac -d E:\java 文件名.java  
    然后把e:\java导入到CLASSPATH中或者是把需要用到该包的文件放到e:\java目录下编译