为什么不奇怪?应该不用导入全名呀,为什么用import com.testpack.util.*就不可以呢?
解决方案 »
- JAVA进阶
- 用java编写程序,发邮件
- *****跪求*****Jtree不知道可以添加多个根节点不?如果可以请问怎么做啊.
- 求。。JSP的视频播放组件。。。。
- 急,求教高手,如何设置JTable中一个单元格的属性?
- 如何获取系统默认类加载器已加载的类和接口?
- printStackTrace()有什么用?能具体解释下吗?
- 菜鸟朋友问菜鸟一个问题,菜鸟不知做,请java高手帮忙啊??否则菜鸟的牛就白吹了!!!
- 类相互调用问题
- 或许对你也有用,进去看看吧:关于怎样清除IE缓冲的问题!
- 我基础学的不好,那个能给我讲一讲递归的具体调用,最好给个例子。
- 我现在准备学习Java了,请大家推荐基本学习Java的好书
必须要
com.testpack.util.testPack test=new com.testpack.util.testPack()
test.test(1,1);
改成 public class TestPack{
我已经import了,还需要这样用整个的路径名称?to jihaihan,
我改了名字错误依然出现,无法解析静态公共方法test(int,int),为什么呢?请教了,谢谢
testPack testp=new testPack();
testp.test(1,1);you may test it!
//Mytest.java
package com.jswlee.util;
import java.util.*;
public class Mytest
{
public static void main(String args[])
{
System.out.println("main function for the class packed
in the package");
}
public static int test(int i, int j)
{
return i+j;
}
}//TestMytest.java
import com.jswlee.util.*;
class TestMytest
{
public static void main(String args[])
{
int result=Mytest.test(1, 3);
System.out.println("Result is : "+result);
}
}javac -d . Mytest.java
java com.jswlee.util.Mytest 运行成功
javac TestMytest.java失败,错误如下TestMytest.java:8: 不能解析符号
符号:方法 test (int,int)
位置:类 in Mytest
int result=Mytest.test(1, 3);
^
1 个错误环境:J2SDK 1.3.0
CLASSPATH和PATH均设置没有问题
int result=com.jswlee.util.Mytest.test(1,3);就是正确的,这是为什么?如果将上述代码中的import com.jswlee.util.*;改成
import com.jswlee.util.Mytest;不修改int result这一句也是成功的,这又是为什么呢?多谢指教!
为导入的类首次创建一个对象时(或者访问一个类的static成员时),编译器会在适当的目录里寻找同名的.class文件(所以如果创建类X的一个对象,就应该是X.class)。若只发现X.class,它就是必须使用的那一个类。然而,如果它在相同的目录中还发现了一个X.java,编译器就会比较两个文件的日期标记。如果X.java比X.class新,就会自动编译X.java,生成一个最新的X.class。对于一个特定的类,或在与它同名的.java文件中没有找到它,就会对那个类采取上述的处理。这段话的意思好像是应该在导入的包中也就是com\jswlee\util\寻找比较新的java源码文件吧,它怎么在F:\javaprogram中寻找起来了?
或许能编译通过.
他首先查找classpath下是否有符合该包名的路径,如果找到,就进去看是不是有testPack.class,如果没有,再找源文件进行编译,当然,我们的情况是肯定可以找到testPack.class的,呵呵。因为已经编译好了的么。当这一步完成后,再进行fortest.java的check动作,从而顺利通过编译。所以,楼主可以尝试把这两个源文件(testPack.java、fortest.java)放在不同的目录中,就肯定可以通过编译。不知道我表述的清楚不?如果不清楚,可以和我联系([email protected])。呵呵。希望和大家多多交流,共同进步。
感谢coaa(我吃多了)提出的宝贵思路。我已经试过了,没问题。
ps:jdk真的很白痴。