java导包编译运行报错

import com.a;
import com.b;
public class c {
}

c类中导入了两个a,b两个类,其中b类跟c类在同一个工程下,a类在已经打好的jar包中。
现在把b,c所在的工程进行打包,并把打好的jar包放在跟a所在的jar包同一个目录下,但是运行项目时报错是找不到a类,想知道具体的导包、编译、运行过程。

阅读 2.7k
2 个回答

Java 包和路径是严格对应的关系,按你提供的信息,你的目录结构应该是这样的

workspace
    com
        A.java
        B.java
        C.java

然后在 A,B,C 中都需要申明 package com;

// @A.java
package com;

public class A {
}
// @B.java
package com;

public class B {
}
// @C.java
package com;

import com.A;
import com.B;

public class C {
    A a;
    B b;

    public static void main(String[] args) {
        System.out.println("Hello C");
    }
}

编译可以随便在哪个目录下执行 javac 命令,但执行的时候一定要在 com 目录的父级目录下,也就是上例中的 workspace 目录

c:\workspace> java com.C

如果你分别打成 jar 包的,则需要在 java 命令中用 -classpath 加入 jar 包

C:\workspace> java -classpath a.jar;b.jar;c.jar com.C

你的代码的问题:

  1. 类名应该首字母大写

  2. 执行的时候classpath是否包含了a和b各自的jar

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题