放到一个目录下,运行时还是要弹出这个呀: Exception in thread "main" java.lang.NoClassDefFoundError:ToolsTest(wrong name: com/mypackage/tools/ToolsTest)why???
package com.mypackage.tools;import java.util.*;public class toolsTest { public static void main(String[] args){ p t2 = new p(); p t3 =new p(); t2.f(0); } // t2.f(0); /* 但该怎样在里调用class p的方法f()呢? p t2 = new p(); t2.f(0); 这样不行呀~ */ } package com.mypackage.tools; import java.util.*;class p { public void f(int x) { System.out.println(x); } }public class test { public void tt() { /*..............*/ } public static void main(String[] args) { /*..............................*/ } }这个就对了, 你在toolsTest 没有main()方法,你调用个鬼啊
classpath: d:\javaapplication就这样的撒
非public类只能在同一个文件夹里面调用啊
如果你要调用只能把这个类另存一个文件,这样他是public才能被访问
如果class A和public class B在同一个目录下,class A的默认修饰权限是package啊!
B完全可以用A,即使A不是public的!
然后放入classpath
就可以了。
1把p 声明为public
2就是把toolsTest 和p 放到同一个package里面.
编译通过了,但运行不起,好象我发现只要导入包,运行时都出现这样的问题:
Exception in thread "main" java.lang.NoClassDefFoundError:ToolsTest(wrong name: com/mypackage/tools/ToolsTest)怎么回事呀???
然后把两个.java文件放在一个文件夹下,(test.java,toolsTest.java)
import com.mypackage.tools.*;这句不要
Exception in thread "main" java.lang.NoClassDefFoundError:ToolsTest(wrong name: com/mypackage/tools/ToolsTest)why???
public static void main(String[] args){
p t2 = new p();
p t3 =new p();
t2.f(0);
}
// t2.f(0);
/*
但该怎样在里调用class p的方法f()呢?
p t2 = new p();
t2.f(0);
这样不行呀~
*/
}
package com.mypackage.tools;
import java.util.*;class p {
public void f(int x) {
System.out.println(x);
}
}public class test {
public void tt() {
/*..............*/
}
public static void main(String[] args) {
/*..............................*/
}
}这个就对了,
你在toolsTest 没有main()方法,你调用个鬼啊
改你的非public类改为public的,放到其它文件里,没必要放在同一个文件里,没什么意义.
或者是在你的public里定义你的非public的实例,然后调用实现的方法等