首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏韩曙亮的移动开发专栏

    【开发环境】JRE 裁剪 ② ( 裁剪 bin 目录下的 dll 动态库文件 | 压缩 rt.jar 文件 )

    文章目录 一、裁剪 lib 目录下的 jar 文件 二、压缩 rt.jar 文件 参考博客 : 精简jre1.8 精简jre步骤 裁剪JRE(嵌入式设备的java环境移植) 资源下载地址 ( 本篇博客的资源快照 /han1202012/87389091 JRE 裁剪分为三步 : 第一步 : 裁剪 bin 目录下的 dll 动态库文件 ; 第二步 : 裁剪 lib 目录下的 jar 文件 ; 第三步 : 裁剪 rt.jar jar 文件后 , 程序仍然正常执行 ; 此时 jre 还剩下 76MB ; 二、压缩 rt.jar 文件 ---- 将 rt.jar 拷贝出来 , 进行解压 ; 解压后 , 得到这些目录文件 ; 在上述解压 rt.jar 的目录下 , 执行如下命令 , 重新打包 rt.jar ; jar cvf rt.jar com java javax org sun jdk 压缩完毕后 , rt.jar 只有 30MB 左右 ; 将压缩后的 rt.jar 拷贝到 jre 的 lib 目录下 ; 此时程序依然可以执行 ; jre 裁剪后 30MB ;

    50810编辑于 2023-03-30
  • 来自专栏一个会写诗的程序员的博客

    Java HelloWorld 學習

    Contents/Home/jre/lib/resources.jar,/Library/Java/JavaVirtualMachines/jdk1.8.0_40/Contents/Home/jre/lib/rt.jar ] [Loaded java.util.Map from /Library/Java/JavaVirtualMachines/jdk1.8.0_40/Contents/Home/jre/lib/rt.jar ] [Loaded java.io.File from /Library/Java/JavaVirtualMachines/jdk1.8.0_40/Contents/Home/jre/lib/rt.jar ] [Loaded java.net.URL from /Library/Java/JavaVirtualMachines/jdk1.8.0_40/Contents/Home/jre/lib/rt.jar ] [Loaded sun.misc.VM from /Library/Java/JavaVirtualMachines/jdk1.8.0_40/Contents/Home/jre/lib/rt.jar

    84010发布于 2020-09-07
  • 来自专栏java一日一条

    深入分析Java ClassLoader原理

    ] [Loaded sun.nio.cs.StreamDecoder from C:\Program Files\Java\jdk1.6.0_22\jre\lib\rt.jar] [Loaded \Java\jdk1.6.0_22\jre\lib\rt.jar] [Loaded java.util.concurrent.ConcurrentMap from C:\Program Files\ \jdk1.6.0_22\jre\lib\rt.jar] [Loaded java.util.concurrent.locks.ReentrantLock from C:\Program Files _22\jre\lib\rt.jar] [Loaded java.util.BitSet from C:\Program Files\Java\jdk1.6.0_22\jre\lib\rt.jar] C:\Program Files\Java\jdk1.6.0_22\jre\lib\rt.jar] [Loaded java.util.HashSet from C:\Program Files\

    88720发布于 2018-09-19
  • 来自专栏趣谈编程

    Debug JDK源码没变量值怎么办?

    对于程序员而言,阅读源码是一个非常重要的能力,相信Java程序员最常看的就是JDK的源码了,但有时候我们想具体看看源码在运行时某个变量的值,就会发现Debug时看不到变量的值,这是因为官方在编译 rt.jar 具体步骤: 1.制作可调试的 rt.jar 包 1.1 .在D盘新建jdk7_src及jdk7_rt-debug两个文件夹 ? 1.5.复制jre/lib/rt.jar 把JDK安装目录(复制src.zip的那个目录)下jre/lib下的rt.jar复制到jdk7_src目录下 ? ? 2.使用可调试的 rt.jar 2.1.把rt_debug.jar放入JDK中 放入java_home/jre/lib/endorsed目录 ? 2.3.添加rt_debug.jar的源码包 注意:若原来的JRE目录下已经存在了rt.jar包,则要将新编译的rt_debug.jar的位置在原来的jar包之前,如下图所示。 ?

    1.3K30发布于 2018-12-18
  • 来自专栏菩提树下的杨过

    Oracle Coherence应用部署到Jboss EAP 6.x 时 NoClassDefFoundError: sun/rmi/server/MarshalOutputStream 的解决办法

    启动时一直报如下错误:     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar :1.6.0_29]     at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_29]     at org.jboss.threads.JBossThread.run java.lang.NoClassDefFoundError: sun/rmi/server/MarshalOutputStream     at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar :1.6.0_29]     at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) [rt.jar:1.6.0_29]     at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [rt.jar:1.6.0_29]     at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass

    98190发布于 2018-01-19
  • 来自专栏刘君君

    Method的invoke方法源码分析

    ] [Loaded sun.reflect.DelegatingMethodAccessorImpl from D:\jdk8\jre\lib\rt.jar] Hello,0 Hello,1 Hello from D:\jdk8\jre\lib\rt.jar] [Loaded sun.reflect.ByteVectorFactory from D:\jdk8\jre\lib\rt.jar] [Loaded jre\lib\rt.jar] [Loaded sun.reflect.ClassFileAssembler from D:\jdk8\jre\lib\rt.jar] [Loaded sun.reflect.UTF8 from D:\jdk8\jre\lib\rt.jar] [Loaded sun.reflect.Label from D:\jdk8\jre\lib\rt.jar] [Loaded sun.reflect.Label $PatchInfo from D:\jdk8\jre\lib\rt.jar] [Loaded java.util.A

    1.7K60发布于 2018-05-21
  • 来自专栏后端开发随笔

    一次对JDK进行"减肥"的记录

    /jre/lib/charsets.jar/sun/awt jdk1.8.0_161/jre/lib/resources.jar/javax/swing jdk1.8.0_161/jre/lib/rt.jar /com/sun/awt jdk1.8.0_161/jre/lib/rt.jar/com/sun/java/swing jdk1.8.0_161/jre/lib/rt.jar/com/sun/swing jdk1.8.0_161/jre/lib/rt.jar/java/applet jdk1.8.0_161/jre/lib/rt.jar/java/awt jdk1.8.0_161/jre/lib /rt.jar/javax/swing jdk1.8.0_161/jre/lib/rt.jar/sun/applet jdk1.8.0_161/jre/lib/rt.jar/sun/awt jdk1.8.0 _161/jre/lib/rt.jar/sun/java2d jdk1.8.0_161/jre/lib/rt.jar/sun/swing 总结 这个JDK精简的实现并不涉及任何技术难点,也并非必要.在我自己的实际场景中是因为触及到需要大量拷贝

    1.9K20发布于 2019-09-11
  • 来自专栏Java学习录

    JVM常用参数配置

    Files (x86)\Java\jdk1.8.0_181\jre\lib\rt.jar] [Loaded java.lang.CharSequence from C:\Program Files ( x86)\Java\jdk1.8.0_181\jre\lib\rt.jar] [Loaded java.lang.String from C:\Program Files (x86)\Java\jdk1.8.0 _181\jre\lib\rt.jar] [Loaded java.lang.reflect.AnnotatedElement from C:\Program Files (x86)\Java\jdk1.8.0 _181\jre\lib\rt.jar] [Loaded java.lang.reflect.Type from C:\Program Files (x86)\Java\jdk1.8.0_181\jre \lib\rt.jar] [Loaded java.lang.Class from C:\Program Files (x86)\Java\jdk1.8.0_181\jre\lib\rt.jar] 。。

    1.2K41发布于 2019-05-16
  • 来自专栏听Allen瞎扯淡

    Mac OS X 安装 JDK备忘

    /Java/JavaVirtualMachines/1.6.0_38-b04-436.jdk/Contents/Home 注:1.6.0_38-b04-436.jdk目录名字与安装的jdk版本有关 rt.jar rt.jar已经集成到/Library/Java/JavaVirtualMachines/1.6.0_38-b04-436.jdk/Contents/Classes/classes.jar,jsse.jar 建立软连接到/Library/Java/JavaVirtualMachines/1.6.0_38-b04-436.jdk/Contents/Home/lib/下,并且classes.jar的软连接命名为rt.jar 这样就可以避免一些时候会发生找不到rt.jar的问题了,例如在使用混淆码的时候。

    1.4K30发布于 2018-09-10
  • 来自专栏猿天地

    Lambda初次使用很慢?从JIT到类加载再到实现原理

    ] [Loaded jdk.internal.org.objectweb.asm.ClassWriter from F:\Java_JDK\JDK1.8\jre\lib\rt.jar] [Loaded from F:\Java_JDK\JDK1.8\jre\lib\rt.jar] [Loaded jdk.internal.org.objectweb.asm.MethodVisitor from F: \Java_JDK\JDK1.8\jre\lib\rt.jar] [Loaded jdk.internal.org.objectweb.asm.MethodWriter from F:\Java_JDK \JDK1.8\jre\lib\rt.jar] [Loaded jdk.internal.org.objectweb.asm.Type from F:\Java_JDK\JDK1.8\jre\lib\rt.jar from F:\Java_JDK\JDK1.8\jre\lib\rt.jar] [Loaded jdk.internal.org.objectweb.asm.AnnotationVisitor from

    1.3K40发布于 2020-07-09
  • 来自专栏是Kerwin啊

    从JIT到类加载再到实现原理解式Lambda编译慢的问题

    ] [Loaded java.lang.Shutdown$Lock from D:\JDK\jre1.8\lib\rt.jar] 我们可以结合JIT编译时间,结合JVM载入类的日志发现两个结论: 凡是使用了 ] [Loaded jdk.internal.org.objectweb.asm.ClassWriter from F:\Java_JDK\JDK1.8\jre\lib\rt.jar] [Loaded from F:\Java_JDK\JDK1.8\jre\lib\rt.jar] [Loaded jdk.internal.org.objectweb.asm.MethodVisitor from F: \Java_JDK\JDK1.8\jre\lib\rt.jar] [Loaded jdk.internal.org.objectweb.asm.MethodWriter from F:\Java_JDK \JDK1.8\jre\lib\rt.jar] [Loaded jdk.internal.org.objectweb.asm.Type from F:\Java_JDK\JDK1.8\jre\lib\rt.jar

    1.1K30发布于 2020-07-14
  • Type Checking 对类加载的影响

    java.lang.Class$MethodArray from /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/rt.jar Loaded java.lang.Void from /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/rt.jar java.lang.Class$MethodArray from /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/rt.jar Loaded java.lang.Void from /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/rt.jar Loaded java.lang.Void from /Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home/jre/lib/rt.jar

    22500编辑于 2025-06-07
  • 来自专栏Java架构师必看

    如何在IDE中查看java源代码

    1、首先依次点击windows->preference->java->install JARs->选中你的jre->点击Duplicate 2、找到 rt.jar并展开,这时会看到Soruce attachement 在弹出的新窗口中,选择External Location,再点击External File..找到你的jdk安装目录中的src.zip,将它添加进去,然后一路确认就可以了 dt.jar是关于运行环境的类库, rt.jar 有时候会出现不成功的现象,因为有可能是src.zip没有添加进去,再次执行步骤2时,找到rt.jar并展开,这时会看到Soruce attachement:(none)括号中仍是none。

    2.3K30编辑于 2021-12-21
  • 来自专栏明明如月的技术专栏

    《深入理解java虚拟机》String.intern()探究

    java.lang.reflect.Type from /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/rt.jar Loaded java.lang.Class from /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/rt.jar java.lang.ClassLoader from /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/rt.jar Loaded java.lang.System from /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/rt.jar Loaded java.lang.Error from /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre/lib/rt.jar

    63520发布于 2021-08-27
  • 来自专栏EmacsTalk

    JVM 的类初始化机制

    Loaded java.lang.Object from /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/lib/rt.jar java.io.Serializable from /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/lib/rt.jar java.lang.Comparable from /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/lib/rt.jar java.lang.CharSequence from /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/lib/rt.jar Loaded java.lang.Void from /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/lib/rt.jar

    50030编辑于 2022-07-26
  • 来自专栏全栈程序员必看

    精简JRE的思路初探「建议收藏」

    rt.jar中提取对应的所须要的class 4.4. 将rt.jar中提取的class进行打包,就可以得到所需的jre核心jar包。 代码假定的前提:  1. Jre所在的路径   2. 将jre中的rt.jar打包在当前路径。 System.out.println("classes to be packed in size:" + classes.size()); classes.add(0, "/opt/jdk7/jre/lib/rt.jar () + " classes have been extracted successfully"); String[] cmdJarPackage = { "jar", "cvf", "rt.jar jarProcess = runtime.exec(cmdJarPackage); System.out .println("Jar the classes into a package rt.jar

    64810编辑于 2022-07-08
  • 来自专栏java干货

    JVM 的类初始化机制

    Loaded java.lang.Object from /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/lib/rt.jar java.io.Serializable from /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/lib/rt.jar java.lang.Comparable from /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/lib/rt.jar java.lang.CharSequence from /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/lib/rt.jar Loaded java.lang.Void from /Library/Java/JavaVirtualMachines/jdk1.8.0_112.jdk/Contents/Home/jre/lib/rt.jar

    63920发布于 2021-02-19
  • 来自专栏Rindew的iOS技术分享

    在类路径或引导类路径中找不到程序包 java.lang

    正确配置如下:Windows(分隔符英文分号):XML/HTML code bootclasspath ${java.home}/lib/rt.jar;${java.home}/lib/jce.jar </ bootclasspath linux(分隔符英文冒号):XML/HTML code bootclasspath ${java.home}/lib/rt.jar:${java.home}/

    5K70发布于 2018-06-14
  • 来自专栏Java架构师历程

    maven报错列表集

    在类路径或引导类路径中找不到程序包 java.lang 解决方法:找到compilerArguments标签 Windows分隔符英文分号; <bootclasspath>${java.home}/lib/rt.jar ;${java.home}/lib/jce.jar</bootclasspath> linux分隔符英文冒号: <bootclasspath>${java.home}/lib/rt.jar:${java.home

    62330发布于 2018-09-26
  • 来自专栏全栈程序员必看

    一文搞懂双亲委派模型「建议收藏」

    ClassLoader):前面已经大致介绍过了,这个类加载器负责将存放在 <JRE_HOME>\lib 目录中的,或者被 -Xbootclasspath 参数所指定的路径中的,并且是虚拟机识别的(仅按照文件名识别,如 rt.jar 例如 java.lang.Object 存放在 rt.jar 中,如果编写另外一个 java.lang.Object 并放到 ClassPath 中,程序可以编译通过。 由于双亲委派模型的存在,所以在 rt.jar 中的 Object 比在 ClassPath 中的 Object 优先级更高,这是因为 rt.jar 中的 Object 使用的是启动类加载器,而 ClassPath rt.jar 中的 Object 优先级更高,那么程序中所有的 Object 都是这个 Object。

    1.9K30编辑于 2022-08-03
领券