两个类存在同一个包内,用其中一个引用另外一个,不知道出了什么问题,大侠帮忙看下把package lession1;public class Lession1
{ public static void main(String[] args)
{ PublicClassSamePackage pcsp=new PublicClassSamePackage();//找不到符号
pcsp.pcsp();
}
}package lession1;public class PublicClassSamePackage
{ public static void main(String[] args)
{ public void pcsp()//非法的表达式开始,需要;
{
System.out.println("相同package中的公开类");
}
}
}
{ public static void main(String[] args)
{ PublicClassSamePackage pcsp=new PublicClassSamePackage();//找不到符号
pcsp.pcsp();
}
}package lession1;public class PublicClassSamePackage
{ public static void main(String[] args)
{ public void pcsp()//非法的表达式开始,需要;
{
System.out.println("相同package中的公开类");
}
}
}
{
System.out.println("相同package中的公开类");
}
拿到main方法外面去
main方法里怎么可以定义方法呢?
这里就写错了应该是这样
package lession1;
public class PublicClassSamePackage {
public void pcsp(){
System.out.println("相同package中的公开类");
}
}
顶3楼
那为什么单独运行PublicClassSamePackage的时候,提示缺少main函数呢?
还有Lession1这个文件找不到符号还没解决..
public void pcsp(){
System.out.println("相同package中的公开类");
}
}public class Lession1
{ public static void main(String[] args)
{ PublicClassSamePackage pcsp=new PublicClassSamePackage();
pcsp.pcsp();
}
}我写到一起了,如果你非得给p加个public,那你就新建个p.java就是了。
main()在哪个类里面不重要, 这个方法表明这个类可以执行
就是直接java xxx , xxx必须有main()才可以执行
Exception in thread "main" java.lang.NoClassDefFoundError: Lession1 (wrong name:
lession1/Lession1)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
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: Lession1. Program will exit.
和java -d . Lession.java,再弄弄吧!或者你干脆把两个文件中的package给注销掉
{ public static void main(String[] args)
{
PublicClassSamePackage pcsp=new PublicClassSamePackage();
pcsp.pcsp();
}
}
package lession1;
public class PublicClassSamePackage {
public void pcsp(){
System.out.println("相同package中的公开类");
}}
记住,一个 .java 文件里,可以有多可 class ,但是 只能存在一个 用 public 修饰的!其效果和写在多个文件里一样,因为编译后,有多少个class被定义,就会有多少个 .class 生成。不同之处,可能就是访问权限了
不知你当时的想法!
只能挑语法错误!
//package lession1;public class Lession1
{ public static void main(String[] args)
{
PublicClassSamePackage pcsp=new PublicClassSamePackage();
pcsp.pcsp();
}
}//package lession1;
public class PublicClassSamePackage {
public void pcsp(){
System.out.println("相同package中的公开类");
}}
把两个package注释掉肯定没问题,你在编译和执行的时候命令有误,所以才会出现你说的错误提示
D:\JAVAgo\lession1>java Lession1
Exception in thread "main" java.lang.NoClassDefFoundError: Lession1 (wrong name:
lession1/Lession1)
两个main()分别写在两个类中,你运行哪个类,就会调用那个类的main();并且还能调用另一个类的main()呢?
public class Lession1 {
public static void main(String[] args) {
PublicClassSamePackage pcsp=new PublicClassSamePackage();
pcsp.pcsp();
}
}
public class PublicClassSamePackage {
public void pcsp(){
System.out.println("相同package中的公开类");
}}
不过为什么不能标记上这个package呢?无语了。。
package lesson1;
import lesson1.PublicClassSamePackage;
public class Lesson1 extends PublicClassSamePackage
{
public static void main(String[] args)
{
PublicClassSamePackage pcsp=new PublicClassSamePackage();
pcsp.pscp();
}
}package lesson1;
public class PublicClassSamePackage
{
public static void main(String[] agrs)
{
PublicClassSamePackage pscp=new PublicClassSamePackage();
pscp.pscp();
}
public void pscp()
{
System.out.println("相同package中的公开类");
}
} 运行过程:
>javac -d PublicClassSamePackage.java
>javac -d Lesson1.java
>java lesson1.Lesson1
OK!
删除了package lession1;这条语句是可以运行,但本意就失去了9楼的还有其他楼的都写对了,其实加上package是可以的,楼主出错是在于运行语句上
首先编译:javac Lession1.java运行:java lession1.Lession1应该加上包的名字,Lession1.class的文件在lession1这个包里面,因为java会在当前的目录下寻找lession1这个包
然后在包里面寻找Lession1.class这个文件运行,包名食类名的一部分楼主你试试就知道了