网易首页 > 网易号 > 正文 申请入驻

Java 快速开发几 MB 独立 EXE,写图形界面很方便

0
分享至

aardio 可以支持很多编程语言, Java 就是其中之一。

aardio + Java 可生成体积极小的独立 EXE 文件,可以内存加载 Java 编写的 class 文件,用 aardio + Java 生成的软件,发布时不需要携带 Java 运行时

aardio 写图形界面很方便,参考仅 755 KB 的开源软件 Gif123:

aardio 开发的程序,兼容XP,Vista,Win7,Win8,Win10,Win11...... 等所有系统。aardio 只支持 Windows 系统( macOS + Linux 桌面市场份额小于被遗忘的 Win8 ),同时也扔掉了跨平台的沉重包袱(更轻量、更好地利用专用平台优势)。将需要跨平台的代码用 Java 写,这并不影响在 Windows 上可以使用 aardio 生成 EXE 文件。跨平台与专有平台工具并不冲突,可以相互结合。

开始

默认只要在 aardio 中调用

import java;

就会自动搜索系统可用的 JRE,如果没有找到 JRE,会自动导入 java.jre.v8 扩展库,并自动安装 OpenJDK JRE v8 。

如果您希望发布的软件自带 Java 运行时,或者指定 JRE 的版本,只要在 aardio 中导入其他版本 JRE 的扩展库就可以,例如运行

import java.jre.v8ora

就可以自动绑定 Oracle Java 8 运行时,软件运行会自动查找用户电脑上符合要求的 JRE,如果没有找到会全自动地安装和部署好,开发者要做的,仅仅就是写几句代码,把 EXE 简单地分发给用户就可以了。

当然,独立 EXE 也可以嵌入更小的 JRE,aardio 里提供了一个示例 JRE,只要简单的在代码中加入

import java.jre.v6

就可以在软件中嵌入一个精简版的 JRE 6 运行时,这个 JRE 只有 6MB 多一点,而且可以生成独立 EXE 文件,甚至还能支持 Windows XP 这种古老的系统。Java 写的桌面软件带上运行时只有 6 MB,而且还是独立 EXE 文 件,是不是难以置信?!想一想 Electron 没写多少功能就可能超过百 MB 的体积,Java 写的桌面软件算不算得上小、轻、快呢?!

现代 Java 已经可以非常方便地生成精简版的 JRE,所以你只要参考 java.jre.v6 的实现(放心这个库的源代码只有几行),就可以非常轻松地更换为其他 JRE 版本,并生成极小的 EXE文件( 而且可以是独立的 EXE文件)。

好吧,我们来看几个 aardio 自带的 aardio + Java 范例( 可以直接运行 )。

aardio 调用 Java 函数

首先请看下面 aardio 调用 Java 如此简单,我们可以在 aardio 中直接导入 Java 的类,创建 Java 对象,就像在 Java 代码中一样使用它们。

import console;
import java;

//创建 Java 虚拟机
var jvm = java();

//导入 Java 类
HelloworldApp = jvm.import( "aardio.sample.HelloworldApp");

//修改类的静态成员变量
HelloworldApp.static_num = 996;

//获取类的静态成员变量
console.log( HelloworldApp.static_num );

//直接用 Java 类创建 Java 对象,跟 Java 中一样用就行
var helloworld = HelloworldApp();

//获取对象的成员字段值
console.log( helloworld.name );

//调用对象的方法
console.log( helloworld.test(1) );

//调用 main 函数,参数是字符串数组
var ret = HelloworldApp.main( {"aaa字符串数组1","bbb字符串数组2"} );
console.log(ret);
console.pause();

Java用 aardio 函数

示例:

Java 类 HelloworldApp (在范例中可以找到)中如下声明 aardio 函数:

aardio 直接运行 jar 程序

您仅需数句代码可以将 jar 导入 aardio 生成软件件。以 Java 编写的软件 FFDec 为例,原来只能自己去下载安装 JRE,现在不用这么做了,我用 aardio 写了个例子:

这个扩展库 java.ffdec 的源代码只有几句:

aardio 调用 jar 的 main 函数

我们还可以直接调用 jar 的 main 函数来运行 Java 程序,以 YUICompressor 为例:

import java;
import java.yuiCompressor;

java.addClassPath("~\lib\java\yuiCompressor\.res\yuicompressor.jar")

var jvm = java();
YUICompressor = jvm.import( "com.yahoo.platform.yui.compressor.YUICompressor");
var ret = YUICompressor.main({"d:\test.js", "-o","d:\testmin.js"})

Java 函数签名

原本调用 Java 函数要写签名,但这个签名写起来是有些累的。所以 aardio 已经把这个事情完全给优化掉了,aardio 调用 Java 一般不用再去写签名。
但是 aardio 仍然允许以声明普通静态 API 函数的语法指定 Java 函数签名 —— 然后由 aardio 自动翻译为 Java 函数签名。
举个例子:


import java;
var jvm = java();
//导入 Java 类
HelloworldApp = jvm.import( "aardio.sample.HelloworldApp");
//getMethod 用于获取一个函数,参数 @2 指定函数签名
var main = HelloworldApp.getMethod("main","string(string[])");
//通过声明导入的函数,如果参数是字符串,可以把参数展开写
var result = main("test1","test2")

但是上面的函数签名一般可以省略,可以简化为下面的代码:

上面的示例需要的 Java 类,可以在 aardio 自带范例里找到:

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
“喂到他娶媳妇为止”,网友:孩子奶奶发型,早已预示了家教水平

“喂到他娶媳妇为止”,网友:孩子奶奶发型,早已预示了家教水平

世界圈
2026-06-09 08:32:26
随着韩国0-1大爆冷,2组大结局,最新晋级形势大反转:7队出局!

随着韩国0-1大爆冷,2组大结局,最新晋级形势大反转:7队出局!

大秦壁虎白话体育
2026-06-25 11:06:32
163的王祖蓝和175的老婆换裤子穿,一个成人行拖把,一个成7分裤

163的王祖蓝和175的老婆换裤子穿,一个成人行拖把,一个成7分裤

木子爱娱乐大号
2026-06-22 10:21:23
黄一鸣彻底凉了!母女抖音账号双双被封禁,网友:一点也不冤

黄一鸣彻底凉了!母女抖音账号双双被封禁,网友:一点也不冤

雷科技
2026-06-25 18:16:59
韩国队运气爆棚!拿第2,1/16决赛PK加拿大,孙兴慜进16强容易了

韩国队运气爆棚!拿第2,1/16决赛PK加拿大,孙兴慜进16强容易了

何老师呀
2026-06-25 07:11:51
iPhone 17 将打破历史纪录,成为寿命最长的苹果手机!

iPhone 17 将打破历史纪录,成为寿命最长的苹果手机!

XCiOS俱乐部
2026-06-25 19:31:03
千万不要碰任何上不了台面的东西!网友:人应自觉矜贵!

千万不要碰任何上不了台面的东西!网友:人应自觉矜贵!

另子维爱读史
2026-06-24 22:47:53
真涨价了!苹果正式宣布产品迎来大涨价,涨价幅度巨大

真涨价了!苹果正式宣布产品迎来大涨价,涨价幅度巨大

XCiOS俱乐部
2026-06-25 21:15:18
委内瑞拉官方通报伤亡人数!特朗普:惨重;马杜罗最新发文,中国大使馆提醒

委内瑞拉官方通报伤亡人数!特朗普:惨重;马杜罗最新发文,中国大使馆提醒

上观新闻
2026-06-25 18:08:23
人到晚年,一定要在还能走动时,把这五件事办了,一旦卧床就晚了

人到晚年,一定要在还能走动时,把这五件事办了,一旦卧床就晚了

王二哥老搞笑
2026-06-21 09:50:17
宝妈考编第一被作废后续:官方回应戳破谎言,网友一致表示不同情

宝妈考编第一被作废后续:官方回应戳破谎言,网友一致表示不同情

星娱叨叨社
2026-06-22 18:34:58
中国脑梗发病率世界第一!医生苦劝:罪魁祸首已揪出,这4物少吃

中国脑梗发病率世界第一!医生苦劝:罪魁祸首已揪出,这4物少吃

医学科普汇
2026-06-17 18:55:13
印度26岁“富二代”山谷徒步坠亡!警方:系遭未婚妻和情人联手推下峡谷

印度26岁“富二代”山谷徒步坠亡!警方:系遭未婚妻和情人联手推下峡谷

红星新闻
2026-06-25 15:57:32
普京:若西方打击俄罗斯,必遭报复

普京:若西方打击俄罗斯,必遭报复

澎湃新闻
2026-06-24 16:02:47
王平河:江湖自有分寸(1/10)

王平河:江湖自有分寸(1/10)

金昔
2026-06-25 20:06:42
才知道!菜市场和超市的猪肉差这么多,看完再也不用纠结去哪买了

才知道!菜市场和超市的猪肉差这么多,看完再也不用纠结去哪买了

阿莱美食汇
2026-06-18 16:59:08
俄罗斯嘲讽欧洲面临燃料危机,结果自己这个“大号加油站”没油了

俄罗斯嘲讽欧洲面临燃料危机,结果自己这个“大号加油站”没油了

山河路口
2026-06-25 20:58:37
台海还没开战,另一场恶仗已逼近中国?美撕下伪装,基辛格没说错

台海还没开战,另一场恶仗已逼近中国?美撕下伪装,基辛格没说错

霁寒飘雪
2026-06-25 19:45:51
我接受不了我女儿这样!女大学生晒和男友同居日常,家长心态崩了

我接受不了我女儿这样!女大学生晒和男友同居日常,家长心态崩了

世界圈
2026-06-25 12:34:13
美国一特斯拉时速117公里撞向民居,致76岁老人身亡;司机称当时处于自动驾驶模式,马斯克:这没道理

美国一特斯拉时速117公里撞向民居,致76岁老人身亡;司机称当时处于自动驾驶模式,马斯克:这没道理

都市快报橙柿互动
2026-06-25 21:22:22
2026-06-25 22:04:49
aardio
aardio
aardio 编程语言
6文章数 30关注度
往期回顾 全部

科技要闻

宇树机器人大降价

头条要闻

赖清德呼吁大陆放弃"武力攻台" 国防部表态

头条要闻

赖清德呼吁大陆放弃"武力攻台" 国防部表态

体育要闻

世界杯最动人一吻:我若离世 你就改嫁吧

娱乐要闻

这国产剧太装了,居然还热播第一?

财经要闻

又有纸尿裤送检后被检测出甲酰胺!

汽车要闻

138.8万元!东方豪华天花板?尊界S800 Grand Design典藏大观上市

态度原创

教育
家居
亲子
旅游
手机

教育要闻

收藏!2026全国31省高考志愿填报时间最全汇总,错过一天等一年!

家居要闻

绿意盎然 自然之境

亲子要闻

2026孕前养巢肌醇分享,肌醇哪个牌子不易产生身体不适感?呵护卵巢实现助孕目标

旅游要闻

云南普者黑4万余亩荷花进入盛放期

手机要闻

努比亚Neo 5 Max现身MWC上海:7.5英寸巨屏比肩小平板

无障碍浏览 进入关怀版