首页
学习
活动
专区
工具
TVP
发布

Java学习-如何编译适配java版本的jar

如何编译适配java版本的jar 在日常浏览github社区的过程中,会碰到一些好用的java项目,但作者往往只提供源码或与本地jdk不适配的jar,这时候可以自行进行编译 打开项目 build...往往会出现以下报错信息: java: 错误: 不支持发行版本 17 files—>settings ctrl+alt+shift+s project选择对应版本 新建一个maven项目 依次运行...clean、compile、package、install 这样可以成果编译出来,但是运行jar会提示没有主清单属性 这时候可以选择另一种编译方法 Artifacts ——–> JAR ——–>...From module with depenencies 然后选择主类(程序入口) 重新选择 build artifact 这时候会在项目目录里生成一个out目录,jar就在里面 成功编译

82310
您找到你想要的搜索结果了吗?
是的
没有找到

java解决动态编译加载不到import的jar

; import javax.tools.ToolProvider; public class DynamicLoader {     /**      * 通过类名和其代码(Java代码字符串),编译得到字节码...,返回类名及其对应类的字节码,封装于Map中, 值得注意的是,      * 平常类中就编译出来的字节码只有一个类,但是考虑到内部类的情况, 会出现很多个类名及其字节码, 所以用Map封装方便...编译器接口         JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();         StandardJavaFileManager...Exception e) {             e.printStackTrace();         }         return result;     }     /**      * 一个文件对象...         *          * @param name 此文件对象表示的编译单元的name          * @param code 此文件对象表示的编译单元source的code

1.2K40

JD-GUI反编译jarJava源代码

程序员难免要借鉴其他java工程的代码。可有时只能拿到.calss文件,jar或者war,这个时候要求程序员能熟练的将这些类型文件反编译Java代码并形成可编译运行的项目。...本文介绍的反编译工具是JD-GUI。反编译的jar一个springboot项目的jar。...open file选择要反编译的jar, ? 打开,左侧classes->com目录下就是java源代码文件 ?...java代码都在BOOT-INF/calsses/com里 ? 将classes目录里的所有东西一起拷贝到建立好的空的springboot项目中编译运行,目录层次要拷贝正确。...运行时有些可能报错,主要是pom引入的和手工导入的冲突,或者有些版本不对,也需要逐一解决。当然,有些反编译项目直接正确运行不报错误,这样当然最好了。

6.7K21

java编译过程_Java编译运行过程

Java编译运行过程 在上一篇文章中,我们了解了第一个Java入门程序,以及如何编译和运行第一个Java程序。本文主要了解以下编译和运行Java程序时会发生什么。此外,我们还会分析一些常见的问题。...1 Java程序编译过程 在编译时,Java文件由Java编译器(它不与底层操作系统交互)将Java代码转换为字节码(.class)。...2 Java程序运行过程 在Java程序运行中,会执行以下步骤: 类加载器(Classloader):类加载器是JVM的子系统,用于加载类文件。...3 两个常见的问题 3.1 Java源文件命名方式 问题:一个class的名称为Simple,Java源文件名称可以不是Simple.java么?...3.2 一个Java源文件写多个类 问题:一个Java源文件中可以写多个类么? 答案是可以的。

2.1K10

java实现编译器_实现一个简单的编译

简单的说 编译器 就是语言翻译器,它一般将高级语言翻译成更低级的语言,如 GCC 可将 C/C++ 语言翻译成可执行机器语言,Java 编译器可以将 Java 源代码翻译成 Java 虚拟机可以执行的字节码...编译器如此神奇,那么它到底是如何工作的呢?本文将简单介绍编译器的原理,并实现一个简单的编译器,使它能编译我们自定义语法格式的源代码。(文中使用的源码都已上传至 GitHub 以方便查看)。...一般编译器有以下工作步骤: 词法分析(Lexical analysis): 此阶段的任务是从左到右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描然后根据构词规则识别 单词(Token),完成这个任务的组件是...编译器完成编译后,由 链接器(Linker) 将生成的目标文件链接成可执行文件,这一步并不是必须的,一些依赖于虚拟机运行的语言(如 Java,Erlang)就不需要链接。...对了,我们还需要一个 main 函数作为编译器的入口函数,它在 main.cpp 里: … int main(int argc, char **argv) { yyparse(); InitializeNativeTarget

2.6K30

Java| 编译和反编译

不同的语言都有自己的编译器,Java语言中负责编译编译器是一个命令:javac 当我们写完一个HelloWorld.java文件后,我们可以使用javac HelloWorld.java命令来生成...Java常用反编译工具 本文主要介绍4个Java的反编译工具:javap、jad和cfr以及可视化反编译工具JD-GUI JAVAP javap是jdk自带的一个工具,可以对代码反编译,也可以查看java...JAD JAD是一个比较不错的反编译工具,只要下载一个执行工具,就可以实现对class文件的反编译了。...(在文末有下载地址) JadClipse下载地址在官网下载插件的jar,然后将jar放到eclipse的plugins目录下;在打开Eclipse,Eclipse->Window->Preferences...如何防止反编译? 由于我们有工具可以对Class文件进行反编译,所以,对开发人员来说,如何保护Java程序就变成了一个非常重要的挑战。但是,魔高一尺、道高一丈。当然有对应的技术可以应对反编译咯。

2.4K10

java官方编译器_JAVA 编译

因此,javac是把Java源代码编译Java字节码,即JVM可以识别的二进制;表面上就是将.java文件转成.class文件。 javac做了些什么? 主要由4个模块组成。...使用即时编译器技术,能够加速 Java 程序的执行速度。下面,就对该编译器技术做个简单的讲解。...在 Java 7 版本,分层编译默认的代码缓存大小经常是不够的,需要经常提高代码缓存大小。大型项目若使用 client 编译器模式,则也需要提高代码缓存大小。...当 JVM 执行一个 Java 方法,它会检查这两个计数器的总和以决定这个方法是否有资格被编译。如果有,则这个方法将排队等待编译。这种编译形式并没有一个官方的名字,但是一般被叫做标准编译。...不同的 Java 版本输出形式不一样,我们这里所说的是基于 Java 7 版本的。 编译日志中大部分的行信息都是下面的形式: 清单 2.

2.1K30

java程序编译命令_使用 java 命令编译运行 java 程序

java 编译的过程,就是将 java 项目从源文件变成 .class 文件的过程,而 .class 文件,最后会被加载到JVM 中运行。...在 JDK bin/ 目录下,提供了 javac 命令,用于将 .java 源文件编译成 .class 字节码文件,提供了 java 命令,以 Main_Class 为入口,根据运行需要,加载相应的 class...关于环境变量 如果在没有引用第三方 jar 的情况下,想在任意目录下直接运行 javac 编译 .java 文件,则需要设置 PATH 和 CLASSPATH 环境变量,关于如何设置,可参考 Ubuntu...编译生成 .class 文件 -> 使用 java 命令运行程序 >$javac Hello.java >$java Hello 如果有多个 .java 文件,则多了一个步骤,需要先打包成 .jar...文件,最后使用 java -jar xx.jar 命令运行即可,总结如下:使用 javac 编译生成 .class 文件 -> 使用 jar 命令生成 jar -> 使用 java 命令运行程序 jar

3K20

java编译命令是什么_Java编译命令整理

引言 近期在做Android相关开发工作,不可避免的需要接触Java层的调用机制,好多年不用Java了,这里整理下相关的编译命令。作为后续参考使用,也防止每次都需要到处查找。...基本概念 javac – Java programming language compiler,Java编译器,类似gcc java – the Java Application Launcher,Java...,JNI头文件生成器 javap – Class File Disassembler,Java编译工具 javadoc – API Documentation Generator,Java文档自动生成器...jar – JAR Archive Tool,Java库文件工具,类似ar 常规的编译、链接、运行,只需要了解javac、jar、java即可。...编译(.java–>.class) javac a.java a.class 生成Jar(.class–>.jar) jar cf myFile.jar *.class 从Jar中提取*.class

1.3K40

Java

Java概念Java中的(Package)是一种用来管理类和接口的机制。它可以将相关的类和接口放在同一个命名空间下,以避免类名和接口名的冲突,并提供更好的可重用性和可维护性。...Java的名称采用点号“.”进行分隔。例如,com.example是一个,表示该包下面包含了example组织的代码。...Java的作用Java的作用在于:把功能相似或相关的类或接口组织在同一个中,方便类的查找和使用。采用树形目录的存储方式,使得之间产生了关系,方便维护、管理。...Java的定义在Java中,我们可以通过在Java源文件的第一行使用 package 语句来定义一个。...例如:package com.example.myPackage;这个语句表示定义了一个名为 com.example.myPackage 的

13521

java编译原理

4.Java编译原理 1.javac是什么? (1)javac是一种编译器,能够将一种语言规范转换成另一种用语言规范,通常编译器是将便于人们理解的语言规范成机器容易理解的语言规范。...2.javac编译器的基本结构 (1)步骤: 读取源码,进行词法分析。...javac进行词法分析时会根据java语言规范来控制什么顺序,在什么地方应该出现什么Token(如对package的读取,package语法规范上应该是第一个token,那么在构造javacParser...java中锁由的字符集合都能找到Token中对应的项,Keywords类负责把每个字符集合对应到Token集合中,每一个字符集合都有一个Name对象,而Keywords会先把Token.name转化成Name...在编译的时候,class文件中是通过叫做”符号引用”的方式来实现的”。)

1.8K20

Java编译

但是有些场景下你拿到都是 JAR ,而并非源码,咋办? 另外,在项目对接过程中,你有没有经历过外部门或者其它公司给你一个对接的 SDK,但是有没有一丝好奇就想知道 SDK 里面写的啥?...接下来就就一起聊聊 Java编译相关的知识。...大家都知道,将源文件转换成二进制执行代码的过程叫“编译”,比如将 Java 源代码编译成 JAR 可执行文件;那么把二进制执行文件转换成源文件的过程就叫“反编译”,比如将 JAR 反编译成源文件。...Java 平台下有Jad、Jode、Java Decompiler(JD-GUI)等反编译利器,编程这些年,几乎都用过,但是目前电脑上只有 Java Decompiler(JD-GUI)这一款在用,之前分享的很多关于源码的文章...2 分钟系列平淡的分享到这就结束了, 主要解决网友提出的一个问题,希望对你也有点帮助吧。

2.9K30
领券