我想自己做一个软件包,我将Point.java文件拷贝至f:\javatext1\ch1\a\下,Point.java中代码如下
package ch1.a;
public class Point {
protected int x,y;
public void setPoint (int a,int b)
{x=a;y=b;}
public double getX() {return x;}
public double getY() {return y;}
}
用javac.exe编译,在f:\javatext1\ch1\a下生成Point.class类文件。
在dos下设置类路径变量
set classpath=f:\javatext1
同时在f:\javatext中有PointTest.java文件,其内容如下:public class PointTest {
public static void main (String[] args)
{ch1.a.Point p= new ch1.a.Point();
int i=0;
String outText;
System.out.println("variable i=" + i);
outText="X coordinate is " +p.getX()+"\n  Y coordinate is "+ p.getY();
System.out.println("(" + ++i +")" + outText);
p.setPoint(48,124);
outText="X coordinate is " + p.getX() +
"\n  Y coordinate is " + p.getY();
System.out.println("("+ ++i +")" + outText);
}
}
对这个文件编译时怎么老是提示说ch1.a的软件包不存在呢,我前面明明已经生成ch1.a 的软件包了啊,望高手赐教,不胜感激

解决方案 »

  1.   

    把f:\javatext1目录下的ch1目录先删掉
    把Point.java和PointTest.java拷贝到f:\javatext1目录下
    进入命令行,进入f:\javatext1
    执行javac -d . *.java
    就能编译生成Point.class和PointTest.class了
    java PointTest
    就能运行了
      

  2.   

    看错了,看成是一个目录了
    把Point.java放到f:\javatext1目录
    把PointTest.java放到f:\javatext目录
    命令行
    f:\javatext1>javac -d . Point.java
    f:\javatext1>cd ..
    f:>cd javatext
    f:\javatext>javac -classpath f:/javatext1 PointTest.java
    f:\javatext>java -classpath f:/javatext;f:/javatext1 PointTest
      

  3.   

    PointTest.java和Point.java你分别放在不同的文件夹下面,一个是f:\javatext,另一个是f:\javatext1\ch1\a。
    你可以把PointTest.java放在f:\javatext1文件夹下面,就不会有错了。
      

  4.   

    有包的话要展开新的目录,-d 就是展开新的目录, . 代表是当前目录,可以是其他的目录的
     哎,IDE害人不浅,基本的都快忘了
      

  5.   

    set classpath=f:\javatext1 是CLASSPATH编译时,可以javac -cp.;f:\javatext1 MyClass.java这样就可以了。
      

  6.   

    在dos下设置classpath只对当前这个cmd窗口有效,编译PointTest时需要在这个cmd窗口下
      

  7.   

    经过各位指点,对PoitTest.java的编译完成,但是在运行PointTest的时候总是提示以下信息
    Exception in thread "main" java.lang.NoClassDefFoundError: ch1/a/Point
    at PointTest.main(PointTest.java:3)
    怎么回事呢
      

  8.   


    就是没有找到 Point类文件。你看看ch1/a/下面有没有Point.class ,注意大小写
      

  9.   

    javac -jar
    或者用eclipse工具,打成.jar包
      

  10.   

    Point.class是有的,这个类是通过javac  -d . Point.java 产生的,在ch1\a\下面也找到了编译后的Point.class.
      

  11.   

    如果用IDE,很方便实现。
    如果LZ想学习如何在DOS命令行下操作,呵呵,挺好,但也没啥大意思,了解下就行了
      

  12.   

    java -classpath f:/javatext;f:/javatext1 PointTest 
    运行的时候这样运行
      

  13.   

    以上问题,通过将f:\javatext下的PointTest.java 拷贝到f:\javatext1下进行编译,执行时不需指定类路径,就不出现任何问题了,但是为什么在不同的目录中执行就不行呢?