Java JAR中的类不可访问

Java JAR中的类不可访问,java,jar,enums,Java,Jar,Enums,我已经从代码中创建了一个java文件,并将其绑定到项目的JAR文件中。现在,我正试图从我的项目的另一个模块中使用这个JAR。除了我生成的类之外,所有的类都是可见的。 生成的JAVA类是枚举类型的,看起来非常好。可能的原因是什么 jar tf的输出为: META-INF/ META-INF/MANIFEST.MF com/ com/ com/processing/ com/processing/ com/processing/commonutils/ com/processing/commonut

我已经从代码中创建了一个java文件,并将其绑定到项目的JAR文件中。现在,我正试图从我的项目的另一个模块中使用这个JAR。除了我生成的类之外,所有的类都是可见的。 生成的JAVA类是枚举类型的,看起来非常好。可能的原因是什么

jar tf的输出为:

META-INF/
META-INF/MANIFEST.MF
com/
com/
com/processing/
com/processing/
com/processing/commonutils/
com/processing/commonutils/enumGenerator/
com/processing/commonutils/enumGenerator/csvUtil/
com/processing/commonutils/enumGenerator/csvUtil/CsvHeaderConstants.class
com/processing/commonutils/enumGenerator/csvUtil/CsvReader.class
com/processing/commonutils/enumGenerator/csvUtil/CsvToEnumConverter.class
com/processing/commonutils/enumGenerator/csvUtil/DataTypeEnum.class
com/processing/commonutils/enumGenerator/main/
com/processing/commonutils/enumGenerator/main/ErrorEnumGeneratorMain.class
Error Data1.csv
Error Data2.csv
com/processing/commonutils/enumGenerator/Data1ErrorEnum.class
com/processing/commonutils/enumGenerator/Data2ErrorEnum.class
我无法访问Data1ErrorEnum或Data2ErrorEnum类。其余所有类都可见。Data1ErrorEnum类看起来像:

package com.processing.commonutils.enumGenerator;

public enum Data1ErrorEnum {

    DIE_1 ( "Data integrity error","FATAL" );

    private String errorType ;
    public String errorType() {
        return errorType;
    } 

    private String severity ;
    public String severity() {
        return severity;
    } 

    private Data1ErrorEnum  (String errorType,String severity)
    {
        this.errorType = errorType;
        this.severity = severity;
    }
}
下面给出了我试图从中访问的类:

package com.processing.commonutils.error;

import com.processing.commonutils.enumGenerator.*;

public class SystemException extends Exception {

    Data1ErrorEnum data1ErrorEnum ;

   }

它对您的类是私有的吗?首先,您是否通过
JAR-tvf your_JAR.JAR
检查命令行上的JAR文件,以确保enum类确实在其中?如果不查看源代码,就无法预测它,但是访问修饰符可能是这里的问题。请记住,默认访问意味着仅对包和继承类中的类可见@ꜱᴜʀᴇꜱʜᴀᴛᴛᴀ 我认为顶级类不允许使用private,除非它是内部类;)是的,Jar包含类文件,Enum类具有公共类型的访问修饰符,Enum构造函数不能是公共的,因此它是默认类型。请发布
Jar tf your.Jar的输出、类的代码、使用类的代码以及您得到的特定错误。如果您使用的是IDE,那么会出现一个屏幕截图,显示导入的库,理想情况下会显示该类实际位于您导入的库中。我猜您可能导入了一个错误的JAR(比如旧版本)。