首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

非法的类文件:类模块信息缺少超类型。类文件版本53

问题概述

“非法的类文件:类模块信息缺少超类型。类文件版本53”这个错误通常出现在使用Java模块系统(如Jigsaw)时,表示某个类文件缺少必要的模块信息或超类型信息。类文件版本53对应于Java 11。

基础概念

  1. Java模块系统(Jigsaw):Java 9引入的模块系统,用于更好地组织和管理大型Java应用程序。
  2. 类文件版本:Java类文件的版本号,与使用的Java版本相关。例如,版本53对应于Java 11。

可能的原因

  1. 模块路径配置错误:模块路径配置不正确,导致Java无法找到所需的模块信息。
  2. 类路径问题:类路径中存在不兼容的类文件版本。
  3. 编译问题:源代码未正确编译为模块化的类文件。

解决方法

1. 检查模块路径配置

确保模块路径配置正确。可以使用以下命令检查模块路径:

代码语言:txt
复制
java --module-path mods -m my.module/com.example.Main

其中,mods是模块路径,my.module是模块名,com.example.Main是主类的全限定名。

2. 确保类路径一致性

确保所有类文件都是用相同版本的Java编译的。例如,如果你使用Java 11编译,那么运行时也应使用Java 11。

3. 重新编译源代码

确保源代码正确编译为模块化的类文件。可以使用以下命令编译:

代码语言:txt
复制
javac --module-source-path src -d mods --module-source-path mods

其中,src是源代码路径,mods是输出模块路径。

4. 检查模块描述符

确保模块描述符(module-info.java)正确无误。例如:

代码语言:txt
复制
module my.module {
    requires java.base;
    exports com.example;
}

示例代码

假设有一个简单的模块化Java应用程序:

src/com.example/Main.java

代码语言:txt
复制
package com.example;

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

src/my.module/module-info.java

代码语言:txt
复制
module my.module {
    requires java.base;
    exports com.example;
}

编译和运行命令:

代码语言:txt
复制
javac --module-source-path src -d mods --module-source-path mods
java --module-path mods -m my.module/com.example.Main

参考链接

通过以上步骤,你应该能够解决“非法的类文件:类模块信息缺少超类型。类文件版本53”的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python引入相同和不同(模块文件夹下py文件

目录 一、引入同级目录模块 1、项目结构 2、引入规则 3、配置环境 二、引入不同级目录模块 1、项目结构 2、引入规则 3、案例代码 一、引入同级目录模块 1、项目结构 2、引入规则 从SyncMysqlMongo...中引入MongoDBUtil.py和MySQLUtil.py中两个(这里名和文件名一致) 语法:form 文件名 import 名 from MongoDBUtil import MongoDBUtil...pycharm中即使是包目录也不会默认当前目录在环境变量中 需要手动配置,右击目录 -> Mark Directory as -> Sources Root,配置之后编译器就不会提升报错了 二、引入不同级目录模块...1、项目结构 2、引入规则 ## 将上级目录加入python系统路径 sys.path.append(r'..') ## from 包名.文件名 import 名 from MongoDB.MongoDBUtil

7.9K20
  • 【错误记录】Android 注解处理器报错 ( 非法文件开始 , 请删除该文件或确保该文件位于正确路径子目录中。 )

    文章目录 一、报错信息 二、解决方案 一、报错信息 ---- Android APT , 使用 注解处理器 生成 Java 代码 , 报如下错误 ; 错误: 无法访问MainActivity_ViewBinder...错误文件: D:\002_Project\002_Android_Learn\APT\app\build\intermediates\javac\debug\classes\kim\hsl\apt...\MainActivity_ViewBinder.class 非法文件开始 请删除该文件或确保该文件位于正确路径子目录中。..., 之前使用 ButterKnife 时生成文件 ; 根据 完整 包名 + 名 生成文件 , 使用是 createClassFile API , 生成字节码文件 , 这里用法错误 ; // 根据...包名.名_ViewBinder 创建 Java 文件 JavaFileObject javaFileObject = mFiler.createClassFile(packageName + "."

    95520

    【读码JDK】-java.lang包介绍

    当Java虚拟机检测到正在加载存在循环时,抛出 ClassFormatError 当Java虚拟机尝试读取文件并格式化错误或者无法解析文件时,抛出 ClassLoader 加载器是一个负责加载对象...基本类型float包装类型 Throwable 所有错误和异常。...,但另一个编译后,两个存在不兼容现象 Long 基本类型long包装 Math 包含一些计算方法 Module 表示运行时模块 模块是可以通过模块名统一指代包和资源一种组合。...基本数据类型包装都继承了该抽象方法 Object 所有,所有对象包括数据实现了该类方法 虚假唤醒:https://blog.csdn.net/LuckyBug007/article/details...,则抛出该异常 UnsupportedClassVersionError 当Java虚拟机尝试读取文件并确定不支持文件主要版本号和次要版本号时抛出 UnsupportedOperationException

    1.6K20

    TypeScript简介_TypeScript笔记1

    JavaScript 最初设计目标是作为一种脚本语言,缺少一些构建大型应用必备基础特性,如: 静态类型 结构化机制(模块、接口等) 类型缺陷导致很多错误要到运行时才能暴露出来,另一方面,缺少静态类型也是...一致,复制粘贴就可以开始了 提供可选静态类型模块类型不仅让 JavaScript 开发能够使用高效开发工具和实践(如静态检查和代码重构),而且不会带来运行时性能损耗(静态类型仅在编译时存在...(封闭)构建管道,应该让系统具有可扩展性,让编译器适用于更复杂构建工作流 添加或依赖运行时类型信息,或根据类型系统结果很长不同代码,应该鼓励不依赖运行时信息(run-time metadata)编程模式...:JavaScript 类型动态系统静态表示 提供类型推断与结构化类型:实际上不必都给标注上类型类型推断能够解决一部分) 能够配合现有 JavaScript 库使用:声明文件可以独立编写维护 不是可证明类型安全...因此,TypeScript 类型系统更多地只是作为 JavaScript 静态类型补丁,像注释一样体现“意图”,并不保证安全 模块 可扩展应用结构化机制:模块和接口支持定义组件间明确联系

    1.3K30

    数十万PhpStudy用户被植入后门,快来检测你是否已沦为“肉鸡”!

    截至案发,近百万PHP用户中超过67万用户已被黑客控制,并大肆盗取账号密码、聊天记录、设备码等敏感数据多达10万多组,非法牟利600多万元。...据杭州公安披露,黑客组织早在2016年就编写了“后门”文件,并非法侵入了PhpStudy官网,篡改了软件安装包植入“后门”。...据统计,黑客已控制了超过67万台电脑,非法获取账号密码、聊天数据、设备码等数据10万余组,而此案也是2019年以来,国内影响最为严重供应链攻击事件。...”文件中,不过也有部分通过第三方下载站下载PhpStudy后门位于“\php53\ext\php_xmlrpc.dll”文件中。...前往https://dl.360safe.com/instbeta.exe,尽快下载安装最新版360安全卫士,能有效清除并修复PhpStudy安装目录下“后门”文件,全面保护个人信息及财产安全; 2.

    1.4K40

    CVE-2021-26084-Confluence命令执行 全版本内存马注入

    默认情况下JDK 9不允许访问封装包以及深度反射其他模块(包括平台模块)中代码 。...为了便于将基于路径应用程序迁移到Java 9,在对平台模块应用深度反射时,或者使用反射来访问非导出包中类型时,"JVM默认显示警告",而后续尝试将不会产生额外错误或警告。...如果想要进一步调查问题原因,可以使用——illegal-access 命令行标志不同设置来调整行为: ——illegal-access=permit 默认行为。允许对封装类型进行非法访问。...://mp.weixin.qq.com/s/kfN6uU3A-jR72fyK8epnGw confluence是以tomcat启动,直接修改catalina.bat文件debug配置即可: confluence...对应版本JDK和tomcat信息可以参考官网信息: https://confluence.atlassian.com/doc/bundled-tomcat-and-java-versions-1005786018

    4.1K30

    从Java 8升级到Java 11注意事项

    版本 jar 文件 在 Java 11 中,可以创建一个 jar 文件,其中包含多个特定于 Java 发布版文件版本。...没有此选项,jdeps 会在找到多版本 jar 文件情况下发出错误消息。此选项指定要检查文件版本。...除了扫描 JDK 内部 API 使用情况,jdeps 还可以执行其他操作。它是一项有用工具,可以用来分析依赖关系和生成模块信息文件。有关详细信息,请参阅文档。...这些选项允许从一个模块访问另一个模块未导出类型。 --add-exports选项允许目标模块访问源模块命名包公共类型。...Java 版本 文件格式版本 8 52 9 53 10 54 11 55 12 56 13 57 后续步骤 在 Java 11 上运行应用程序后,请考虑将库移出 class-path,然后再将其移入

    2.4K20

    python常见报错以及解决方案(持续更新)

    可能出现原因: 1.命名.py文件时,使用了Python保留字或者与模块名等相同。 解决:修改文件名 2…pyc文件中缓存了没有更新代码。...可能出现原因: 1.同一级代码块采用不同缩进规则( 代码没对齐)。 解决:用键对齐 2.存在非法字符或其他格式不可见内容。...解决:定义变量 2.Python3版本不支持某些Python2中函数或方法,如xrange()。...可能出现情况: 1.忘记写结束引号。 解决:加上缺少引号 2.在字符串结尾处包括\。 解决:将\替换为\或/ 3. 引号嵌套错误。...可能出现原因: 1.int()函数接受了非数字字符串类型数据。 解决:将非数字字符串修改为数字字符串 2.将浮点类型字符串数字转换为整型。

    1.4K30

    一个Java9特性导致编译失败 | 疑难杂症

    dexBuilderRelease 报错了,报错内容为信息异常。 开了了代码混淆,所以导致要根据mapping文件追述混淆前。...,简单说就是一个缺少了super type信息相关,而且版本貌似也略微有点小高啊。...module-info.class 官方对于module info描述 module-info.java不是,不是接口,是一些模块描述信息。module也不是关键字。...module-info描述上来看,这并不是一个一定需要东西,他是一个对外部输出描述信息,告诉你当前jar一些模块信息而已,所以如果使用低版本来进行编译,特别是安卓这种,就必然会出现这个奇怪问题...我对module-info.class进行过滤,因为前文介绍过着是java9模块化使用,也就是说在低版本上有没有这个,其实完全没有用,他并不会实际被使用到。

    1.2K20

    你了解 Typescript 吗

    什么是Typescript TypeScript是JavaScript集,带来了诸多新特性: 可选静态类型 类型接口 在ES6和ES7被主流浏览器支持之前使用它们新特性 编译为可被所有浏览器支持...JavaScript版本 强大智能感知 Typescript特性 可选静态类型 类型可被添加到变量,函数,属性等。...TypeScript比JavaScript更具开发效率,包括:静态类型检查、基于符号导航、语句自动完成、代码重构等。 TS提供了模块和接口,更易于构建组件。...是JavaScript集,从JavaScript迁移方。 从JavaScript迁移到TypeScript不需要经过大改写。可以慢慢、一次一个模块迁移。...随便挑选一个模块,修改文件扩展名.js为.ts,然后逐步添加类型注释。当你完成了这个模块,再选择下一个。 一旦整个代码库都被类型化,你就可以开始调整编译器设置,使其对代码检查更加严格。 3.

    5.6K10

    教你几招消灭代码漏洞方法

    错误类型转换范例 正确使用类型转换范例 不可直接使用无长度限制函数 使用无长度限制函数,它会引发中风险漏洞和高风险漏洞:信息泄露漏洞和缓冲区溢出漏洞。..._alloca和可变长度数组使用内存量在编译期间是未知,尤其是在循环中使用时,根据编译器实现不同,可能会导致:1.栈溢出;2.缺少栈内存测试编译器实现可能导致申请到非栈内存,并导致内存损坏。...在debug版本或错误信息中不提供过多信息。 提供过多信息,这会引发中风险信息泄露漏洞。 包含过多信息Debug消息不应当被用户获取到。...针对DLL劫持编码安全建议: 调用LoadLibrary,LoadLibraryEx,CreateProcess,ShellExecute等进行模块加载函数时,指明模块完整(全)路径,禁止使用相对路径...在有符号和无符号数字参与运算中,需要注意类型强转,它可能导致逻辑错误,建议指定参与计算时数字类型或者统一类型参与计算。

    1.1K31

    php开发工程师面试题知识点总结(二)--基础篇

    false七种情况 整型0 浮点0.0 布尔false 空字符串'',"" 字符串'0' 空数组[] NULL 全局数组 $GLOBALS,包含下面8个全局数组值 $_GET $_POST _REQUERT...fgetc() 获取一个字符 关闭 fopen() 文件大小 filesize() 文件复制 copy() 文件删除 unlink() 文件类型 filetype() 重命名或移动 rename() 文件属性...网络协议 http状态码 200 请求成功 204 not content 206 reset content 301 永久重定向 302 临时重定向 307 临时重定向 400 错误请求 401 缺少认证信息...,smtp(25),snmp,dns(53),telnet(23),https(443),pop3(110),dhcp HTTP协议工作特点和工作原理 工作特点: 基于B/S模式 通信开销小,简单快速...,分析请求类型后,服务器会向客户端发送状态信息和数据内容 HTTP协议常见请求头/响应头 Content-Type 指定数据内容类型 Accept 指定客户端能接受数据内容类型 Origin 最初请求来源

    63430
    领券