小弟新手有一些问题不解,想向大家学习一下。
先说一下我的理解
1.package应该是一个类固有属性的一部分(表示该类存在于哪个地址)
2.import应该是表示该类引用了哪个类(包括地址)
3.classpath表示的在运行程序之前寻找的被引用类的地址
如果这样的话那么在每个classpath目录下的package应该是单独且唯一的。如果两个classpath目录下有相同的package,import该怎么引用呢?
例如:
set classpath=D:\myclass1;D:\myclass2;
//D:\java\test1.java
import a.b.*;
public class test1
{
static public void main(String[] args)
{
test t = new test();
}
}//D:\myclass1\a\b\test.java
package a.b;
public class test
{
public static void main(String[] args)
{
System.out.println("myclass1");
}
}//D:\myclass2\a\b\test.java
package a.b;
public class test
{
public static void main(String[] args)
{
System.out.println("myclass2");
}
}
===========================================================
上面的test1在引用test时引用的是哪个test呢?
我上面的三个小程序运行出错是为什么呢?~~
先说一下我的理解
1.package应该是一个类固有属性的一部分(表示该类存在于哪个地址)
2.import应该是表示该类引用了哪个类(包括地址)
3.classpath表示的在运行程序之前寻找的被引用类的地址
如果这样的话那么在每个classpath目录下的package应该是单独且唯一的。如果两个classpath目录下有相同的package,import该怎么引用呢?
例如:
set classpath=D:\myclass1;D:\myclass2;
//D:\java\test1.java
import a.b.*;
public class test1
{
static public void main(String[] args)
{
test t = new test();
}
}//D:\myclass1\a\b\test.java
package a.b;
public class test
{
public static void main(String[] args)
{
System.out.println("myclass1");
}
}//D:\myclass2\a\b\test.java
package a.b;
public class test
{
public static void main(String[] args)
{
System.out.println("myclass2");
}
}
===========================================================
上面的test1在引用test时引用的是哪个test呢?
我上面的三个小程序运行出错是为什么呢?~~
解决方案 »
- 诚求各位解答:不同网段不能通信是IP软件之规定吗?
- 怎样读取jar包外的配置文件?
- 问java中随机输入参数的实现方法~~谢谢
- Timer 问题 在线=
- 如何判断由Java程式呼叫的外在程式已经结束。(急,希望高手们能够指点一二,万分感谢!顶者有分!)
- 问几个土问题,可以吗?
- 新手求救,我在看JAVA核心编程II的电子版,里面用到corejava包,哪个大虾能发给我一个
- waiting on line
- 求数据库连接池的代码????数据库为sybase的!!!急!
- 怎样实现短信发送,嵌入到系统中,大算分,全给!!!--在线等待
- 消息列队的处理 ArrayList的设计问题
- 求助JAVA关闭窗体的问题!
import你说的是对的
classpath 这个说实话我没用过
所以你的程序应该输出:myclass1
运行就出错,是哪里错了呢?
//D:\myclass2\a\b\test.java 也是一样的
Caused by: java.lang.ClassNotFoundException: test
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: test. Program will exit.
这应该不属于java规范内的东西,
视乎虚拟机的具体实现吧。JDK 1.4 的时候,
只要找到一个就认为成功,
不会检查冲突。
以后的版本就不知道了。
package a.b;
public class test
{
public static void main(String[] args)
{
System.out.println("myclass1");
}
}
javac test.java
java test
最后运行的时候为什么找不到test呢?
我想我运行的时候应该在myclass里面寻找a\b才对呀.这样的话应该不会找不到test吧
应该这样执行:java a.b.test