之前把2个类文件放在同一个文件夹下,不需要用package编译器就能自动搜索到。下面这个是一个例题网上找的,我想通过package使一个类能引用不在同一个文件夹下的另外一个类,但是很奇怪不能运行成功,是不是还要设置classpath?我是新手,书上讲的也不详细,弄了一个下午都没成功,具体怎么弄的呢?求达人帮忙//文件MyClass.java
package mypackage;
public class MyClass
{
  public MyClass()
  {
    System.out.println("Create an object of MyClass.");
  }
}//文件UsePkg.java
import mypackage.*;
public class UsePkg
{
  public static void main(String[] args)
  {
    MyClass obj = new MyClass();
  }
}C:\Java\myjava\mypackage>javac MyClass.javaC:\Java\myjava>javac UsePkg.javaC:\Java\myjava>java UsePkg

解决方案 »

  1.   

    C:\Java\myjava\mypackage>javac MyClass.java 这个命令是错的,应该这样:
    C:\Java\myjava>javac mypackage.MyClass.java
      

  2.   

    不行啊,提示找不到文件
    D:\JAVAgo\lession1>javac mypackage.MyClass.java
    javac: 找不到文件: mypackage.MyClass.java
    用法: javac <options> <source files>
    -help 用于列出可能的选项
      

  3.   

    http://topic.csdn.net/u/20090422/19/59c26eb0-a8f0-4a02-bb3e-0b0d19102e01.html
    你这个帖子1F的回复就知道了.(下载了视频看后就很清楚了!)
      

  4.   

    学会用集成环境如ECLIPSE,这样可以提高开发速率,减少很少不必要的错误!
    LZ的做法是对的:
    C:\Java\myjava\mypackage>javac MyClass.javaC:\Java\myjava>javac UsePkg.javaC:\Java\myjava>java UsePkgJavac必须找到源文件(Test.java)的确切路径,源文件应该是放在包的文件夹下,如
    package com.java.blog
    那么源文件应该放到com/java/blog路径下,
    这样javac编译的.class文件也就生成在当前路径下,否则以后调用会出错.
    注意下javac和java运行的区别,
    javac是在包的路径下编译,(是去com/java/blog/路径下: javac Test.java)
    而java是包命加上类名才可以运行,(java com.java.blog.Test)
    如果是别的类引用的话,
    可以在当前类中导入已经编译好的类,(import com.java.blog.Test;)
    也可以直接在当前类中使用如(com.java.blog.Test test = new com.java.blog.Test();)
    推荐第一种做法!
      

  5.   

    代码没有问题,编译的命令错了,命令应该是:
    javac -d . MyClass.java可以看看我BLOG中连载的《Java编程那些事儿》里关于包的介绍!
      

  6.   

    楼主想用package实现在一个类中调用另一个文件中的类也就是package包中的类因为是两个不同的程序文件,所以第一个java程序必须要有一个main函数才能运行,编译得出的MyClass.class文件必须在
    mypackage文件夹中,运行时路径方面有两种方法:(假设mypackage文件夹在d:\下)
    (1)命令窗口当前的目录是在d:\下,则不需要配置classpath了(当然classpath里有. 这个路径啦)
    (2)配置classpath,加上mypackage所在的目录的路径即d:\;也就是说系统寻找需要的.class文件首先是找到它所在的包,然后才进入包里面继续寻找
      

  7.   

    C:\Java\myjava>javac mypackage.MyClass.java
      

  8.   

    package mypackage; 
    public class MyClass 

      public MyClass() 
      { 
        System.out.println("Create an object of MyClass."); 
      } 
    } //文件UsePkg.java 
    import mypackage.*; 
    public class UsePkg 

      public static void main(String[] args) 
      { 
        MyClass obj = new MyClass(); //执行这句的时候会编译MyClass.java,不用单独编译。
      } 
    }
    楼主的处理方式:
    C:\Java\myjava\mypackage>javac MyClass.java 
    C:\Java\myjava>javac UsePkg.java 
    C:\Java\myjava>java UsePkg首先程序正确
    我认为应该是这样:
    C:\Java\myjava>javac UsePkg.java //这一部已经将UsePkg.java和MyClass.java都编译了
    C:\Java\myjava>java UsePkg
    Create an object of MyClass.
      

  9.   

    使用javac -cp指定类的搜索目录