CN110795200A - 一种适用于Java运行环境的装置及其实现方法 - Google Patents
一种适用于Java运行环境的装置及其实现方法 Download PDFInfo
- Publication number
- CN110795200A CN110795200A CN201810860469.0A CN201810860469A CN110795200A CN 110795200 A CN110795200 A CN 110795200A CN 201810860469 A CN201810860469 A CN 201810860469A CN 110795200 A CN110795200 A CN 110795200A
- Authority
- CN
- China
- Prior art keywords
- java
- runtime
- application program
- runtime environment
- file library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 18
- 238000000605 extraction Methods 0.000 claims abstract description 18
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45529—Embedded in an application, e.g. JavaScript in a Web browser
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
一种适用于Java运行环境的装置及其实现方法,涉及Java技术领域。本发明适用于Java运行环境的装置,它包括JAVA应用程序和JAVA运行时环境。其结构特点是,它还包括链接提取工具和存放在JAVA运行时环境外的运行时类文件库。原始JAVA应用程序和运行时类文件库通过链接提取工具重新链接生成的新JAVA应用程序存储于JAVA应用程序里。JAVA运行时环境由JAVA虚拟机、运行时数据区和操作系统组成。同现有技术相比,本发明能有效节省程序存储空间,降低对硬件资源的要求,提升程序的执行效率,具有应用范围广泛的特点。
Description
技术领域
本发明涉及Java技术领域,特别是适用于Java运行环境的装置及其实现方法。
背景技术
Java语言在1995年被设计出来,最初目的是用于支持小型终端硬件设备。由于应用程序跨平台是该语言的设计初衷,故设计人员开发了一整套JAVA应用程序的编译和运行环境JRE。
参看图1,现有技术中的JAVA运行环境分成两部分:JAVA应用程序1和JAVA运行时环境2两部分。JAVA应用程序1是一个JAR包,其内部由多个*.class文件组成,即类文件集合1.1。JAVA运行时环境2由JAVA虚拟机2.2、运行时数据区2.3、运行时类文件库2.4和操作系统2.5组成。其中, JAVA虚拟机2.2用于执行JAVA应用程序1;运行时数据区2.3暂存程序运行时数据,如:对象数据、栈数据等;运行时类文件库2.4为JAVA应用程序1提供丰富的接口服务;操作系统2.5采用通用操作系统,如:Linux或Windows,为JAVA运行时环境2提供基础服务,如:多线程、I/O服务、网络服务等。
上述现有JAVA运行环境技术方案中存在的问题:
1、现有技术实现的JRE都是基于通用操作系统,如:Linux或Windows,而此类操作系统非常庞大,对硬件资源要求很高,传统的单片机MCU类硬件根本无法运行。即使经过深度裁剪过的Linux系统也无法在较小资源的单片机上运行,如:ROM资源小于256KB,RAM资源小于32KB的单片机。
2、现有技术实现的JRE必须包含运行时类文件库,该库文件中包含有大量的*.class文件。通常包含丰富接口服务功能的库文件体积都很大,而且还会存在增加新功能的可能,故传统的单片机类硬件根本无法装下如此大并不断膨胀的文件。
3、现有技术实现的JRE上运行的JAVA应用程序所有调用内部或外部库服务接口的操作都会被JAVA编译器重新处理,编译器会将每个调用的服务接口都分配一个全局唯一的字符串索引。当应用程序执行时候,JAVA虚拟机会动态解析字符串索引,并进行相关接口的调用。通常程序会存在较多的服务接口调用,这就会存在较多的字符串,会占用很多的程序存储空间。同时解析的过程还会降低程序执行效率,这些在单片机上会造成空间的极大浪费和执行效率低下问题。
如前面所述,由于现有技术实现的JRE过于庞大,根本无法在小资源单片机上运行,但是其在大资源设备上却得到了广泛使用,如:个人PC机、智能手机(安卓)等。
目前,还有一种运行于Java卡上的JCRE,该版本的JAVA运行时环境是专门为智能卡这种小资源硬件设计开发的,但是其运行时类文件库同样包含于JAVA运行时环境中,并未外置;同时其对行时类文件库做了大量的裁剪,无法支持丰富的服务接口,只能针对智能卡这个特定领域做服务接口支持。
发明内容
针对上述现有技术中存在的问题,本发明的目的是提供一种适用于Java运行环境的装置及其实现方法。它能有效节省程序存储空间,降低对硬件资源的要求,提升程序的执行效率,具有应用范围广泛的特点。
为了达到上述发明目的,本发明的技术方案以如下方式实现:
一种适用于Java运行环境的装置,它包括JAVA应用程序和JAVA运行时环境。其结构特点是,它还包括链接提取工具和存放在JAVA运行时环境外的运行时类文件库。原始JAVA应用程序和运行时类文件库通过链接提取工具重新链接生成的新JAVA应用程序存储于JAVA应用程序里。JAVA运行时环境由JAVA虚拟机、运行时数据区和操作系统组成。
在上述装置中,所述操作系统使用的是适合低资源单片机的实时操作系统uCOS和FreeRTOS。
如上所述适用于Java运行环境装置的实现方法,它使用包括JAVA应用程序、JAVA运行时环境、链接提取工具和存放在JAVA运行时环境外的运行时类文件库,其方法步骤为:
1) 将原始JAR包应用程序和外部运行时类文件库通过链接提取工具把内部所有服务接口全部提取出来;
2) 提取出有用的服务接口,剔除所有未调用的服务接口;
3) 计算每个服务接口的所在偏移地址;
4) 将原有的字符串索引替换成偏移地址;
5) 生成新JAVA应用程序。
本发明由于采用了上述结构和方法,同现有技术相比具有如下优点:
1、因为JRE的运行需要基于操作系统提供的基础服务接口,如:多线程、I/O服务、网络服务等;本发明选用为低资源单片机专门设计的实时操作系统RTOS,如uCOS、FreeRTOS等,其同样可提供基础服务接口,而且系统内核代码可裁剪,经过适当裁剪后完全可运行在小资源的单片机上,满足JRE的运行要求。
2、现有技术中是将运行时类文件库包含在JRE内部,JAVA虚拟机动态解析来自JAVA应用程序调用运行时类文件库中的服务接口。本技术方案在保持原有运行时类文件库丰富性的同时,将其从JRE内部剥离出来,单独存在于JRE外部,将编译好的JAVA应用程序和外部运行时类文件库通过链接提取工具把内部所有用到的服务接口全部提取出来。没有用到的接口服务剔除掉,然后重新链接成新的JAVA应用程序,新生成的JAVA应用程序体积会非常小,不再依赖运行时类文件库,硬件不再存储库文件。
3、在上述“优点2”的基础上,链接提取工具把提取出来的所有服务接口进一步处理,将服务接口的所在偏移地址计算出来,并将原有的字符串索引替换成偏移地址,这样会进一步缩小JAVA应用程序的体积,同时由于不再需要动态解析字符串索引,程序的执行效率会得到有效的提升。
下面结合附图和具体实施方式对本发明做进一步说明。
附图说明
图1为现有技术中适用于JRE的装置示意图;
图2为本发明中适用于JRE的装置示意图。
具体实施方式
参看图2,本发明适用于Java运行环境的装置包括JAVA应用程序1、JAVA运行时环境2、链接提取工具3和存放在JAVA运行时环境2外的运行时类文件库2.4。原始JAVA应用程序和运行时类文件库2.4通过链接提取工具3重新链接生成的新JAVA应用程序存储于JAVA应用程序1里。JAVA运行时环境2由JAVA虚拟机2.2、运行时数据区2.3和使用适合低资源单片机uCOS和FreeRTOS实时操作系统2.5组成。
本发明适用于Java运行环境装置的实现方法,它使用包括JAVA应用程序1、JAVA运行时环境2、链接提取工具3和存放在JAVA运行时环境2外的运行时类文件库2.4。其方法步骤为:
1) 将原始JAR包应用程序和外部运行时类文件库2.4通过链接提取工具3把内部所有服务接口全部提取出来;
2) 提取出有用的服务接口,剔除所有未调用的服务接口;
3) 计算每个服务接口的所在偏移地址;
4) 将原有的字符串索引替换成偏移地址;
5) 生成新JAVA应用程序。
本发明装置使用时,其中的JAVA应用程序1是经过链接提取工具3生成的新JAVA应用程序,体积比原始JAR包应用程序小很多。本发明装置中的JAVA运行时环境2由JAVA虚拟机2.2、运行时数据区2.3和操作系统2.5三部分组成,操作系统2.5使用适合低资源单片机的实时操作系统uCOS和FreeRTOS,这三部分的功能与现有技术中的功能完全一致,这里不再赘述。
实践证明,使用本发明装置和实现方法,
⑴ JAVA应用程序1不再依赖运行时类文件库2.4,而是由链接提取工具重新生成新JAVA应用程序,硬件不再存储库文件。
(2)外置的运行时类文件库2.4无需裁剪即可应用于小资源单片机,服务接口支持丰富,更高效、实时性更强。
Claims (3)
1.一种适用于Java运行环境的装置,它包括JAVA应用程序(1)和JAVA运行时环境(2),其特征在于,它还包括链接提取工具(3)和存放在JAVA运行时环境(2)外的运行时类文件库(2.4),原始JAVA应用程序和运行时类文件库(2.4)通过链接提取工具(3)重新链接生成的新JAVA应用程序存储于JAVA应用程序(1)里;JAVA运行时环境(2)由JAVA虚拟机(2.2)、运行时数据区(2.3)和操作系统(2.5)组成。
2.根据权利要求1所述适用于Java运行环境装置的实现方法,其特征在于,所述操作系统(2.5)使用适合低资源单片机的实时操作系统uCOS和FreeRTOS。
3.如权利要求1所述适用于Java运行环境装置的实现方法,它使用包括JAVA应用程序(1)、JAVA运行时环境(2)、链接提取工具(3)和存放在JAVA运行时环境(2)外的运行时类文件库(2.4),其方法步骤为:
1)通过将原始JAR包应用程序和外部运行时类文件库(2.4)通过链接提取工具(3)把内部所有服务接口全部提取出来;
2)提取出有用的服务接口,剔除所有未调用的服务接口;
3)计算每个服务接口的所在偏移地址;
4)将原有的字符串索引替换成偏移地址;
5)生成新JAVA应用程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810860469.0A CN110795200A (zh) | 2018-08-01 | 2018-08-01 | 一种适用于Java运行环境的装置及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810860469.0A CN110795200A (zh) | 2018-08-01 | 2018-08-01 | 一种适用于Java运行环境的装置及其实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110795200A true CN110795200A (zh) | 2020-02-14 |
Family
ID=69425308
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810860469.0A Pending CN110795200A (zh) | 2018-08-01 | 2018-08-01 | 一种适用于Java运行环境的装置及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795200A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1233010A (zh) * | 1998-03-20 | 1999-10-27 | 太阳微系统公司 | 用于为远程执行链接程序的方法和装置 |
CN101040260A (zh) * | 2004-10-12 | 2007-09-19 | 皮克塞(研究)有限公司 | 平台无关的动态链接 |
CN101441566A (zh) * | 2008-11-18 | 2009-05-27 | 腾讯科技(深圳)有限公司 | 一种嵌入式平台和在嵌入式平台上动态链接程序的方法 |
CN101593127A (zh) * | 2008-05-27 | 2009-12-02 | 商埃曲网络软件(上海)有限公司 | 一种数字电视中间件系统的跨平台Jave虚拟机 |
CN102023885A (zh) * | 2010-12-17 | 2011-04-20 | 北京握奇数据系统有限公司 | 一种存储Java卡运行时环境字节码的方法及系统 |
CN104298932A (zh) * | 2014-10-27 | 2015-01-21 | 中国建设银行股份有限公司 | 一种so文件的调用方法及装置 |
CN107992723A (zh) * | 2017-11-29 | 2018-05-04 | 南京莱斯信息技术股份有限公司 | 一种基于动态链接库的Java源码保护方法 |
-
2018
- 2018-08-01 CN CN201810860469.0A patent/CN110795200A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1233010A (zh) * | 1998-03-20 | 1999-10-27 | 太阳微系统公司 | 用于为远程执行链接程序的方法和装置 |
CN101040260A (zh) * | 2004-10-12 | 2007-09-19 | 皮克塞(研究)有限公司 | 平台无关的动态链接 |
CN101593127A (zh) * | 2008-05-27 | 2009-12-02 | 商埃曲网络软件(上海)有限公司 | 一种数字电视中间件系统的跨平台Jave虚拟机 |
CN101441566A (zh) * | 2008-11-18 | 2009-05-27 | 腾讯科技(深圳)有限公司 | 一种嵌入式平台和在嵌入式平台上动态链接程序的方法 |
CN102023885A (zh) * | 2010-12-17 | 2011-04-20 | 北京握奇数据系统有限公司 | 一种存储Java卡运行时环境字节码的方法及系统 |
CN104298932A (zh) * | 2014-10-27 | 2015-01-21 | 中国建设银行股份有限公司 | 一种so文件的调用方法及装置 |
CN107992723A (zh) * | 2017-11-29 | 2018-05-04 | 南京莱斯信息技术股份有限公司 | 一种基于动态链接库的Java源码保护方法 |
Non-Patent Citations (1)
Title |
---|
黄明等: "Java虚拟机加载 机制解析", 《科技咨询导报》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10055208B2 (en) | Extending a virtual machine instruction set architecture | |
US6964033B2 (en) | Object band customization of Java runtime environments | |
CN102915344B (zh) | 一种sql语句处理方法及装置 | |
WO2023231320A1 (zh) | 无栈协程的实现方法、装置、设备及存储介质 | |
US20180025162A1 (en) | Application program analysis apparatus and method | |
US20030079202A1 (en) | Exception handling in java computing environments | |
US6959430B2 (en) | Specialized heaps for creation of objects in object-oriented environments | |
CN110955434B (zh) | 软件开发包处理方法、装置、计算机设备和存储介质 | |
CN111813758A (zh) | 数据库文件分布式分析方法、装置、服务器及存储介质 | |
WO2013139015A1 (en) | Hybrid emulation and kernel function processing systems and methods | |
CN113176926A (zh) | 一种基于虚拟机自省技术的api动态监控方法及系统 | |
CN113296752A (zh) | 生成api文档的方法、系统、设备及存储介质 | |
US20030028741A1 (en) | Frameworks for implementation of java heaps | |
CN110795200A (zh) | 一种适用于Java运行环境的装置及其实现方法 | |
CN111352644A (zh) | 小程序更新方法、装置、服务器及存储介质 | |
CN108647087B (zh) | 实现php内核可重入的方法、装置、服务器和存储介质 | |
US7117489B2 (en) | Optional attribute generator for customized Java programming environments | |
WO2003012637A2 (en) | Two tier clusters for representation of objects in java programming environments | |
CN114168151A (zh) | 基于容器的程序编译方法、装置、电子设备及存储介质 | |
CN104778087A (zh) | 一种信息处理方法以及信息处理装置 | |
EP4204960A1 (en) | Thread-local return structure for asynchronous state machine | |
WO2003001374A2 (en) | Representation of java data types in virtual machines | |
CN112650502A (zh) | 批处理任务处理方法、装置、计算机设备和存储介质 | |
CN114020278A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN115705294B (zh) | 用于获取函数调用信息的方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200214 |
|
WD01 | Invention patent application deemed withdrawn after publication |