在不同的package 里实现接口

robotcrawl 2003-02-22 11:56:55
//myimplements.java
package myimplements;
import mis.*;

public class myimplements implements mi {
public void a(){
System.out.println("a()");
}
public void b(){
System.out.println("b()");
}
public void c(){
System.out.println("c()");
}
public static void main(String[] args) {
myimplements A = new myimplements();
A.a();
}
}

//mi.java
package mis;

public interface mi {
void a();
void b();
void c();
}

在不同的package 里实现接口

编译通过,但运行出错。why??
...全文
43 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
robotcrawl 2003-02-22
  • 打赏
  • 举报
回复
找到原因了,
我的系统classpath设置为C:\ultraproj

这是两个文件
C:\ultraproj\imp\myimplents.java
c:\ultraproj\mis\mi.java


我应该这样运行:java imp/myimplements
nullhue 2003-02-22
  • 打赏
  • 举报
回复
那就是运行的时候你没有有效的指定mi路径,你可以把mi放到classpath中。
或是做成jar文件。
tlsdavid 2003-02-22
  • 打赏
  • 举报
回复
你是如何运行该程序的?classpath设置对了么?必须在classpath中同时包含myimplements和mis两个目录
robotcrawl 2003-02-22
  • 打赏
  • 举报
回复
以下是错误信息:

C:\ultraproj\imp>java myimplements
Exception in thread "main" java.lang.NoClassDefFoundError: myimplements (wrong n
ame: myimplements/myimplements)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:502)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:250)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
nullhue 2003-02-22
  • 打赏
  • 举报
回复
哪里出错?

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧