第一个文件名: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.提前谢谢大家的帮助了!
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.提前谢谢大家的帮助了!
http://www.live-share.com/files/386746/compile_with_package.mkv.html
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 会根据源代码内容来处理依赖性。
set classpath
我在命令行下输入: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包中?
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的区别了
用些小的编辑工具也不错,用jdk的命令,程序多了麻烦.
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
修改上面的访问路径,就可以了
设置的这么复杂?我还头一次见...
佩服!
继续等待牛人...
如果到明天还没有结果,就只能结贴了