首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏兮动人的博客

    Maven指定加载

    有的时候需要把单个文件放到 Linux 环境上去运行,但是又不想引入 SpringBoot 相关依赖以接口形式来访问,如下介绍下使用 Maven 指定加载,打包到 Linux 环境运行准备工作拿这篇文章 【打破 OS 壁垒:Java 跨平台硬件信息采集“终极方案”】中 SystemInfoCollector.java 来举例首先需要把 main 方法给加上,在 SystemInfoCollector -- 这里指定名 --> <mainClass>com.xdr630.util.SystemInfoCollector</mainClass> 但当同时用 maven-shade-plugin 生成一个 shaded (fat) jar 时,最终 shaded JAR manifest 可能不会自动来自 maven-jar-plugin 常见做法:保留或关闭取决于你是否要把生成 POM 用作发布到仓库 POM。

    9410编辑于 2026-01-15
  • 来自专栏Java架构师历程

    Maven 指定JDK版本

    <project xmlns="http://<em>maven</em>.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation="http://<em>maven</em>.apache.org/POM/4.0.0 http://<em>maven</em>.apache.org/xsd/<em>maven</em>-4.0.0 >1.8</<em>maven</em>.compiler.source> <<em>maven</em>.compiler.target>1.8</<em>maven</em>.compiler.target> </properties build,项目的编译 jdk 总是会变成 1.5 版本,一开始通过<em>maven</em>-compiler-plugin配置<em>指定</em>都不生效,后来在 <properties> 中<em>指定</em>了<<em>maven</em>.compiler.source >1.8</<em>maven</em>.compiler.source> 和 <<em>maven</em>.compiler.target>1.8</<em>maven</em>.compiler.target> 才解决,还未探得终极原因。。。

    5.1K20发布于 2018-09-26
  • 来自专栏java学习java

    加载器与加载过程

    加载器子系统作用 加载器子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定文件标识。 加载信息存放于一块称为方法区内存空间。 除了信息外,方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量(这部分常量信息是Class文件中常量池部分内存映射) 加载器ClasLoader角色 class file存在于本地硬盘上 Class文件字节流中包含信息符合当前虚拟机要求,保证被加载正确性,不会危害虚拟机自身安全。 由于Java采用是懒加载策略,只有当我们需要用到这个时候才会去加载他  初始化阶段就是执行构造器方法<clinit>()过程。

    71530编辑于 2023-10-15
  • 来自专栏韩曙亮的移动开发专栏

    【Android 逆向】加载器 ClassLoader ( 启动加载器 | 扩展加载器 | 应用加载器 | 加载双亲委托机制 )

    , Extention ClassLoader 加载额外 /lib/ext 库 , Application ClassLoader 加载开发者自己开发库 ; 加载完 开发者 开发库 后 , ClassLoader 应用加载器 Application ClassLoader 自定义加载器 Custom ClassLoader 在双亲委托机制中 , 上层加载器 是 下层加载 加载任务 之后 , 也会 委托 父 加载器 执行 ; 委托操作 , 会一直传递到 最顶层 启动加载器 Bootstrap ClassLoader ; 如果 启动加载器 Bootstrap ; 同理 , 父 委托 给子类 加载任务 , 如果 子类加载器 可以完成加载 , 成功返回 , 如果子类加载器无法完成加载 , 就再次 将 加载任务 委托给 子类子类 , 继续向下传递 ; 无法 被替代 , 系统只能由 启动加载器 Bootstrap ClassLoader 加载 , 应用加载加载被篡改 Java 核心是无效 ;

    1.4K30编辑于 2023-03-30
  • 来自专栏JAVA技术站

    maven指定jdk版本 原

    <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId >maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source 1.5</source> <target>1.5</target> </configuration> </plugin> </plugins> </build> maven-compiler-plugin

    1K20发布于 2018-08-15
  • 来自专栏大宇笔记

    加载指定bundleName照片

    - (UIImage *)imageNamed:(NSString *)name ofBundle:(NSString *)bundleName {

    72220发布于 2019-01-15
  • 来自专栏搬砖笔记

    linux安装指定版本maven

    /bin/bash# 定义要安装 Maven 版本MAVEN_VERSION="3.6.3"# 定义安装目录INSTALL_DIR="/opt"cd ${INSTALL_DIR}# 下载并解压 Mavenwget "https://downloads.apache.org/maven/maven-3/${MAVEN_VERSION}/binaries/apache-maven-${MAVEN_VERSION}- bin.tar.gz"tar -vf apache-maven-${MAVEN_VERSION}-bin.tar.gz# 移动 Maven 到安装目录mv apache-maven-${MAVEN_VERSION } maven# 配置环境变量echo "export PATH=${INSTALL_DIR}/maven/bin:$PATH" | tee /etc/profile.d/maven.shsource /etc/profile.d/maven.sh# 验证安装mvn --versionecho "clear temp"rm -rf apache-maven-${MAVEN_VERSION}-bin.tar.gz

    2.3K40编辑于 2023-05-24
  • 来自专栏Linyb极客之路

    聊聊maven指定version区间妙用

    -- 指定默认环境 --> <activeByDefault>true</activeByDefault> </activation> </profile 其他区间配法示例(,1.0] x <= 1.0[1.0] x = 1.0 跟直接指定1.0没有区别[1.2,1.3] 1.2 <= x <= 1.3[ ,会提示:Reason: Range defies version ordering有了这个认知后,我们在依赖其他jar时,就可以指定形如下<dependency> <groupId SNAPSHOT,1.0.0]</version> </dependency>比如开发环境没有1.0.0版本,则会引用1.0.0-SNAPSHOT,而正式环境有1.0.0则会引1.0.0总结maven version区间确实能减少我们一些配置工作量,但是凡事都有两面性,如果版本之间存在不兼容情况下,最好还是具体指定版本

    63210编辑于 2024-02-27
  • 来自专栏java架构计划训练营

    加载

    概念 加载 加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区运行时数据结构,然后生成一个代表这个java.lang.Class对象 链接:将Java二进制代码合并到 JVM运行状态之中过程 验证:确保加载信息符合JVM规范,没有安全方面的问题 准备:正式为变量(static)分配内存并设置变量默认初始化值阶段,这些内存都将在方法区中进行分配 解析:虚拟机常量池符号引用 (构造器是构造信息,不是构造该类对象构造器) 当初始化一个时候,如果发现其父还没有初始化,则需要先触发其父初始化 虚拟机会保证一个()方法在多线程环境中被正确加锁和同步 什么时候会发生初始化 比如:当通过子类引用父静态变量,不会导致子类初始化 通过数组定义引用,不会触发此类初始化 引用常量不会触动此类初始化(常量在链接阶段就存入调用常量池中了) 加载作用 将class文件字节码内容加载到内存中 缓存 标准JavaSE加载起器可以按要求查找,但一旦某个加载加载器中,它将维持加载(缓存)一段时间。

    43910编辑于 2022-06-14
  • 来自专栏全栈程序员必看

    【ClassLoader】实现自定义加载加载指定路径下Class文件和Jar包

    文章目录 前言 自定义加载加载.class文件 自定义加载加载jar包文件 前言 在web开发中,一般我们是不需要去自己实现加载,常见web容器已经帮我们实现了指定路径下加载,比如我们熟悉 tomcat容器,关于tomcat加载机制可以阅读博主这篇文章: Java加载机制和Tmcat模型 有些时候我们需要实现自定义加载器来重定向我们.class文件加载路径或者jar包里打包内容 2.我们可以实现一个自定义加载器,用它来加载我们所需要加载内容,然后通过反射生成一个调用对象。 本文主要介绍第二种方式。 自定义加载加载.class文件 想要实现一个自定义加载器,首先要继承JDK中ClassLoader,如果我们要打破双亲委派模型,就去重写他loadClass方法;如果我们想遵循双亲委派模型 补充测试细节: 测试时候要注意先编译,然后把得到User.class复制到你指定目录下,然后要记得删除编译过后User.class,因为双亲委派模型会先去查缓存,如果你不删除缓存JDK还是会用父加载器去加载

    2.2K10编辑于 2022-10-04
  • 来自专栏路过君BLOG from CSDN

    maven下载指定jar包到本地指定目录

    > <project xmlns="http://<em>maven</em>.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation="http://<em>maven</em>.apache.org/POM/4.0.0 http://<em>maven</em>.apache.org/xsd/<em>maven</em>-4.0.0 -- 要下载<em>的</em>项目 --> <dependency> <groupId>org.sample</groupId> <artifactId> -- 复制<em>的</em>包去掉版本信息 --> <stripVersion>true</stripVersion> <! -- 复制到当前路径下<em>的</em>target文件夹里 --> <outputDirectory>.

    1.6K20编辑于 2023-05-11
  • 来自专栏Java面试

    加载器 超详解:什么是加载器,加载器作用及应用场景,加载时机,加载完整过程,加载器分类

    它们源码都位于sun.misc.Launcher中,是一个静态内部类。继承自URLClassLoader,具备通过目录或者指定jar包将字节码文件加载到内存中能力。 URLClassLoader:提供了根据URL获取目录下或者指定jar包进行加载,获取字节码数据能力。扩展加载器和应用加载器继承自URLClassLoader,获得了上述三种能力。 路径中要包含原来ext文件夹,同时在最后加上扩展路径。应用程序加载器应用程序加载器会加载classpath下文件,默认加载是项目中以及通过maven引入第三方jar包中。 ClassLoader classLoader = Student.class.getClassLoader(); System.out.println(classLoader); //maven (); //利用加载器去加载一个指定文件 //参数:文件路径(放在src根目录下,默认去那里加载) //返回值:字节流。

    1.3K21编辑于 2024-09-18
  • 来自专栏小工匠聊架构

    Java-查看JVM从哪个JAR包中加载指定

    背景 方式一 方式二 背景 有的时候,我们经常会碰到java.lang.NoSuchMethodError错误信息。 究其根源,是由于JVM 全盘负责委托机制导致。 关于 全盘负责委托机制 ,请查看另一篇博文 全盘负责委托机制 特别是对于一些web项目,jar包很多,如何精确查找呢? result; } %> <html> <head> <title>srcAdd.jartitle> head> <body bgcolor="#ffffff"> 使用方法,className参数为全名 classLocation = ""+getClassLocation(Class.forName(className)); if (error == null) { out.print("" ("" + className + "没有对应物理文件。")

    1.4K20发布于 2021-08-16
  • 来自专栏shysh95

    Java加载-加载

    这就是虚拟机加载加载概念 ? 上图是加载和卸载整个过程示意图,其中验证、准备、解析统称为连接阶段。 加载-加载阶段 加载加载第一个阶段,加载阶段主要目标是: 通过一个全限定名来获取定义此类二进制字节流 将字节流静态信息结构转换为方法区(元数据区)运行时数据结构 在内存中生成一个代表这个 非数组加载需要通过加载器实现,既可以使用系统提供引导加载,也可以使用用户自定义加载器去完成,关于加载器后续我会单独写一篇文章来介绍,并且实现我们自己一个加载器。 对于数组来说,数组是由Java虚拟机直接创建,但是数组中元素类型需要通过加载加载。数组可见性与数组中元素可见性一致,如果元素不是引用类型,数组可见性将默认为public。 本期加载加载阶段就介绍到这,下期我们会讲解加载连接阶段,我们下期再见!!!

    1.8K40发布于 2021-02-25
  • 来自专栏风中追风

    java加载过程和加载分析

    记得第一次遇见这个问题时候,同学给我回答是: 1.虚拟机会加载JDK里核心包 2.虚拟机会加载JDK里扩展包 3.虚拟机会加载JDK里系统包 4.虚拟机再会加载我们写好java。 再次之前我想补充一个名词解释,加载器:虚拟机把  实现 加载阶段中“通过一个全限定名来获取描述此类二进制字节流” 这个过程代码称为加载器 1. 加载 加载只是加载过程一个阶段而已,但往往被大家弄成了这就是加载过程,所以才有了博文开头时同学给我那个回答; 希望大家不要混淆出这个很相似的名词,从而对加载有所误读。 Loader(标准扩展加载器) 3.Bootstrap Loader 自动加载 AppClass Loader(系统加载器) 4.最后由 AppClass Loader 加载 我们指定(想要运行) 3.初始化一个时候,如果其父还没有被初始化,那么会先去初始化其父; 4.当 JVM 启动时,用户需要指定一个要执行(包含static void main(String 【】args)那个

    1.8K80发布于 2018-05-08
  • 来自专栏Java进阶

    java加载过程和加载分析

    记得第一次遇见这个问题时候,同学给我回答是: 1.虚拟机会加载JDK里核心包 2.虚拟机会加载JDK里扩展包 3.虚拟机会加载JDK里系统包 4.虚拟机再会加载我们写好java。 再次之前我想补充一个名词解释,加载器:虚拟机把  实现 加载阶段中“通过一个全限定名来获取描述此类二进制字节流” 这个过程代码称为加载器 1. 加载 加载只是加载过程一个阶段而已,但往往被大家弄成了这就是加载过程,所以才有了博文开头时同学给我那个回答; 希望大家不要混淆出这个很相似的名词,从而对加载有所误读。 Loader(标准扩展加载器) 3.Bootstrap Loader 自动加载 AppClass Loader(系统加载器) 4.最后由 AppClass Loader 加载 我们指定(想要运行 3.初始化一个时候,如果其父还没有被初始化,那么会先去初始化其父; 4.当 JVM 启动时,用户需要指定一个要执行(包含static void main(String 【】args)那个

    83250发布于 2019-02-20
  • 来自专栏技术趋势

    jvm加载器(classloader)及加载过程

    什么叫加载(classloader)? 加载简单说就是JVM通过加载器ClassLoader,把.class文件中信息,拼装成Class对象放入内存中。 另外需要注意是可以通过启动jvm时指定-Xbootclasspath和路径来改变Bootstrap ClassLoader加载目录。 比如java -Xbootclasspath/a:path被指定文件追加到默认bootstrap路径中。 还可以加载-D java.ext.dirs选项指定目录。 > loadClass ( String name , boolean resolve ) throws ClassNotFoundException{ //检查指定是否被当前加载加载

    2.2K21发布于 2021-03-23
  • 来自专栏全栈程序员必看

    java加载过程 父_加载机制原理

    加载是指把.class文件中数据读入到内存中,通常是创建一个字节数组读入.class文件,然后产生与所加载对应Class对象。加载完成后,Class对象还不完整,所以此时还不可用。 3 ) 当初始化一个时候, 如果发现其父还没有进行过初始化, 则需要先触发其父初始化。 4) 当虚拟机启动时, 用户需要指定一个要执行(包合 main()方法那个) . 除此之外,所有引用方式都不会触发初始化, 称为被动引用。 加载 加载加载过程一个阶段,这两个概念一定不要混淆。 符号引用验证可以看做是对自身以外(常量池中各种符号引用) 信息进行匹配性校验, 通常需要校验以下内容: 符号引用中通过字将串描述全限定名是否能找到对应指定中是否存在符合方法字段描述符以及简单名称所描述方法和字段 初始化阶段主要是对变量进行初始化,在Java中对变量指定初始值有两种方式: 声明变量时指定初始值 使用静态初始化块为变量指定初始值 JVM初始化一个一般包括如下几个步骤: 假如这个还没有被加载和连接

    99820编辑于 2022-09-22
  • 来自专栏Java学习驿站

    Springboot使用maven打包指定mainClass

    在 springboot 项目中,除了启动主函数 mainclass,如果还出现其他 main 方法,本地运行是没有任何问题,但是在打包 package 时,就会报错,说 repackage 时 ,在项目中有多个候选主方法。 这时候,我们就需要在 maven pom.xml 文件中指定打包时 mainClass,具体是在 spring-boot-maven-plugin 中指定,配置如下: <build> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin

    4.2K50编辑于 2022-06-17
  • 来自专栏快乐阿超

    Springboot使用maven打包指定mainClass

    “音乐是天使演讲”,这句话形容得妙极。 ——(英国作家)卡莱尔 今天springboot项目install报错出现多个主问题,最后看这篇博客在pom.xml中指定了主解决了 <build> <plugins> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin

    1K20编辑于 2022-08-16
领券