第一个文件名:AccessTest.javapackage test;
public class AccessTest
{
protected static int x = 8;
}第二个文件名:Subclass.javaimport test.*;
class Subclass extends AccessTest
{
public static void main(String[] args)
{
System.out.println(AccessTest.x);
}
}这2个文件都放在G:\JAVA\VsTest\test2我通过javac -d . AccessTest.java生成了test包(里面有AccessTest.class文件)问题: 1.如何通过在命令行下设置classpath能够生成Subclass.class文件.(越详细越好!)
     2.如何通过在系统下设置环境变量,可以直接在G:\JAVA\VsTest\test2 下输入javac Subclass.java能够生成Subclass.class文件.
     3.为什么import test.AccessTest;后,直接编译Subclass.java就能够生成Subclass.class文件.?PS:1.使用的JDK版本是1.6
   2.请大家尽量不要给参考链接,因为自己找过些,看得晕...
   3.生成的Subclass.class文件就在G:\JAVA\VsTest\test2目录下.
   4.提前谢谢大家的帮助了!

解决方案 »

  1.   

    很简单,将第一个文件放到 test 文件夹下即可。这里是视频例子:
    http://www.live-share.com/files/386746/compile_with_package.mkv.html
      

  2.   


    1.如何通过在命令行下设置classpath能够生成Subclass.class文件.(越详细越好!)
    在这里不需要。楼主执行一下 javac 命令查看帮助内容即可。2.如何通过在系统下设置环境变量,可以直接在G:\JAVA\VsTest\test2 下输入javac Subclass.java能够生成Subclass.class文件.
    当前目录下没有 Subclass.java,所以你这个命令是不行的。顶多这样:
    javac -cp .. -sourcepath .. -d .. ../Subclass.java3.为什么import test.AccessTest;后,直接编译Subclass.java就能够生成Subclass.class文件.? 
    javac 会根据源代码内容来处理依赖性。
      

  3.   

    第二个问题看错目录了。以为你是要在 test 包下执行。
      

  4.   

    如果不能把AccessTest.java文件放在test包中,该如何编译Subclass.java文件呢?
      

  5.   

    设置当前目录为环境变量,然后就可以了!
    set classpath
      

  6.   

    你的AccessTest.java中写的package test;如果不放在test包里会报错的。
      

  7.   

    不能说清楚点吗?
    我在命令行下输入:set classpath=%classpath%;.
    然后编译javac subclass.java就会报错:
    G:\JAVA\VsTest\test2>javac subclass.java
    subclass.java:2: 无法访问 accessTest
    错误的类文件: .\accessTest.java
    文件不包含类 accessTest
    请删除该文件或确保该文件位于正确的类路径子目录中。
    class subclass extends accessTest
    不可以通过在命令行下设置classpath达到编译的目的吗?一定要将AccessTest.java文件放在test包中?
      

  8.   

    -classpath <class search path of directories and zip/jar files>
                      A ; separated list of directories, JAR archives,
                      and ZIP archives to search for class files.
    classpath指定的是class文件的目录,
    package test;
    public class AccessTest
    java会在classpath目录下按包结构找test/AccessTest.class,无视.\AccessTest.class
    java的包结构太严格了。。
    不过如果不严格,也就不能区分test.AccessTest 和 test1.AccessTest的区别了
      

  9.   

    lz是刚接触java?
    用些小的编辑工具也不错,用jdk的命令,程序多了麻烦.
      

  10.   

    学了一个多月了吧!虽然也有用Eclipse,但是还是想弄懂些基本原理,呵!
      

  11.   

    在wendows环境下设置做成一个cmd文件@echo off
    set JAVA_HOME="C:\Program Files\Java\jdk1.6.0_05"
    set access_home=E:\test
    set sub_home=E:\test
    set access_class=E:\test\testclasses
    set sub_class=E:\test\test2classes
    set path=%path%;%JAVA_HOME%\bin;
    set classpath=%access_class%;%sub_class%;
    %JAVA_HOME%\bin\javac -d %access_class% %access_home%\AccessTest.java
    %JAVA_HOME%\bin\javac -d %sub_class% %sub_home%\Subclass.java
    echo 编译成功,执行Subclass
    %JAVA_HOME%\bin\java test2.Subclass
    @pause
    @echo on
    修改上面的访问路径,就可以了
      

  12.   

    你牛!Windows都写成wendows了...
    设置的这么复杂?我还头一次见...
    佩服!
    继续等待牛人...
    如果到明天还没有结果,就只能结贴了