我编译了以下三个几个类文件
分别是存在D:\java\lession3下的
lession3.java ;
DSamePackage.java ;
PSamePackage.java ;
存在D:\java\lession3other下的
POtherPackage.java ;
DOtherPackage.java ;
其中lession3.java是做主程序入口的
代码分别是<lession3.java>:
package lession3;
public class lession3
{
  public static void main(String args[])
  {
    lession3 l3=new lession3();
    l3.PSamePackage();
    l3.DSamePackage();
    l3.POtherPackage();
  }
}<PSamePackage.java>:package lession3;
public class PSamePackage
{
  public String to String()
  {
     retrun "相同包中的公开类";
  }
}<DSamePackage.java>package lession3;
class DSamePackage
{
  public String toString()
  {
    return "相同包下的默认类";
  }
}<POtherPackage.java>:
package lession3other;
public class POtherPackage
{
  public String toString()
  {
    return "不同包下的公共类";
  }
}  <DOtherPackage.java>package lession3other;
class DOtherPackage
{
  public String toString()
  {
    return "不同包下的默认类";
  }
}我的目的是想通过lession3other中的来访问其它包中的类
不过不知道怎么编译~~
看起来长点,不过应该解决起来不难,谢谢各位了~~

解决方案 »

  1.   

    在D:\java\lession3下用 javac lession3.java编译lession3.java(你是不是想写成lesson3,这里多了一个i)
    然后把编译好的lession3.class剪切到新建一个叫“lession3”的文件加内部,即:D:\java\lession3\lession3下同样的方法编译好其他的类,放到对应的文件夹(包)中在main()的类中用import语句把需要用的类,引入进来。大概说到这里,你试试吧。
      

  2.   

    楼主难道是用记事本直接写的?这种精神值得表扬!!!
    lession3other下的类访问lession3下的需要在类开头引入:
    import lession3.*;
      

  3.   

    在一个包下边是public修饰的类才可以被其他包中的类看到,否则只能被自己包中的其他类看到。我的目的是想通过lession3other中的来访问其它包中的类 
    lession3other中的类只有POtherPackage 类可以访问其他包中的类!
      

  4.   

    你的lession3中有    
    l3.PSamePackage(); 
    l3.DSamePackage(); 
    l3.POtherPackage(); 
    这些方法吗?
      

  5.   

    lession3 l3=new lession3(); 
        l3.PSamePackage(); 
        l3.DSamePackage(); 
        l3.POtherPackage(); 
    有问题吧,lession3中哪有这几个方法?你是想测试访问权限的问题吧。
    那你应该生成每一个类的对象,然后调用toString方法。
      

  6.   

    我刚在lession3.java中加了一句
    import lession3other.*;
    package lession3;
    public class lession3
    {
      public static void main(String args[])
      {
        lession3 l3=new lession3();
        l3.PSamePackage();
        l3.DSamePackage();
        l3.POtherPackage();
      }
    }
    这样为啥还不能编译成功?
      

  7.   


    package lession3;import lession3Other.POtherPackage;public class lession3 { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO 自動生成されたメソッド・スタブ
    PSamePackage psame=new PSamePackage(); 
    psame.toString();
    DSamePackage dsame = new DSamePackage();
    dsame.toString();
    POtherPackage pother = new POtherPackage();
    pother.toString(); }}不同包的默认类不能访问所以DOtherPackage这个类不能定义
      

  8.   

    PSamePackage.javapackage lession3;public class PSamePackage {

     public String toString() 
      { 
        return "the same package the same class"; 
      } 
    }
    DSamePackage.javapackage lession3; class DSamePackage {
     public String toString() 
      { 
        return "The same package the same class"; 
      } }POtherPackage.javapackage lession3Other;public class POtherPackage {
    public String toString() 
      { 
        return "different package public class"; 
      } }DOtherPackage.javapackage lession3Other; class DOtherPackage {
     public String toString() 
      { 
        return "different package default class"; 
      } }照我写的代码试试
      

  9.   

    嗯,全改成你的了~~不过这几个文件该怎么放?
    在DOS下该用什么命令编译?
    只用编译javac lession3.java就行吗?
      

  10.   

    分别放在lession3,lession3Other两个文件夹里面
    先用javac lession3.java
    然后java lession3.java
    就出结果了
      

  11.   

    分别放在lession3,lession3Other两个文件夹里面 
    先用javac lession3.java 
    然后java lession3.java 
    就出结果了
      

  12.   

    你也可以放在一个目录下边用这个命令:
    javac -d c:\ *.java
    当前目录的所有的.java都被编译到c:目录下边。
      

  13.   

    昨天试了,好像不行
    而且就算编译出来第二个命令也是要用
    java lession3 了...