【问题标题】:Importing package compiled as jar: Bad class file, class file contains wrong class and package does not exist error导入编译为jar的包:错误的类文件,类文件包含错误的类和包不存在错误
【发布时间】:2015-12-24 10:13:32
【问题描述】:

我已经创建了一个包,并且已经使用 ant 将它编译成一个 jar 文件。

文件结构是这样的

project folder
  x_package
    compiled package_x.jar
    com
      name
        package_x
          Package files
  demos
    src
      files I'm trying to compile

我正在尝试编译 demos/src 下依赖于已编译 package_x.jar 的文件

我通过将 package_x.jar 作为 javac 任务的参数添加到类路径中来做到这一点

Javac 任务

    <javac destdir = "${build.dir}" source = "${ant.java.version}" target = "${ant.java.version}" 
        debug = "true" deprecation = "false" optimize = "false" failonerror = "true" >
        <src path = "${source.dir}" />
        <classpath refid = "master-classpath"/>
    </javac>

主类路径

    <path id = "master-classpath" > 
        <fileset dir = "${classpath.dir}" >
            <include name = "*.jar" />
        </fileset>
        <pathelement path = "${classpath.dir}" />
    </path>

每当我运行 ant 文件时,都会发生 2 个错误

error: package package_x does not exist

第一次引用包中定义的类

error: Cannot access class_name
bad class file C:/(path)/package_x.jar (class_name)
class file contains wrong class: package_x.class_name
please remove or make sure it appears in the correct subdirectory of the classpath

在 package_x 包中,每个文件都以

开头
package package_x;
/*code*/

并且demos目录下的文件有

import package_x.*;
/*code*/

任何建议表示赞赏

【问题讨论】:

    标签: java ant jar classpath packages


    【解决方案1】:

    我不确定这是否是唯一的问题,但在包声明和导入中,您必须编写完整的包路径,例如 com.name.package_x

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-26
      • 2015-02-10
      • 2014-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多