中文字幕 日本 在线 高清,久久精品国产99精品国,超碰人人香蕉,一区二区三区无码高清视频

Java 快速開發(fā)幾 MB 獨立 EXE,寫圖形界面很方便(java怎么開發(fā)exe程序)

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

aardio Java 可生成體積極小的獨立 EXE 文件,可以內(nèi)存加載 Java 編寫的 Class 文件,用 aardio Java 生成的軟件,發(fā)布時不需要攜帶 Java 運行時

aardio 寫圖形界面很方便,參考僅 755 KB 的開源軟件 Gif123:

Java 快速開發(fā)幾 MB 獨立 EXE,寫圖形界面很方便(java怎么開發(fā)exe程序)

aardio 開發(fā)的程序,兼容XP,Vista,Win7,Win8Win10,Win11…… 等所有系統(tǒng)。aardio 只支持 Windows 系統(tǒng)( macOS Linux 桌面市場份額小于被遺忘的 Win8 ),同時也扔掉了跨平臺的沉重包袱(更輕量、更好地利用專用平臺優(yōu)勢)。將需要跨平臺的代碼用 java 寫,這并不影響在 Windows 上可以使用 aardio 生成 EXE 文件 。跨平臺與專有平臺工具并不沖突,可以相互結(jié)合。

開始

默認只要在 aardio 中調(diào)用

import java;

就會自動搜索系統(tǒng)可用的 JRE,如果沒有找到 JRE,會自動導(dǎo)入 java.jre.v8 擴展庫,并自動安裝 OpenJDK JRE v8 。

如果您希望發(fā)布的軟件自帶 Java 運行時,或者指定 JRE 的版本,只要在 aardio 中導(dǎo)入其他版本 JRE 的擴展庫就可以,例如運行

import java.jre.v8ora

就可以自動綁定 Oracle Java 8 運行時,軟件運行會自動查找用戶電腦上符合要求的 JRE,如果沒有找到會全自動地安裝和部署好,開發(fā)者要做的,僅僅就是寫幾句代碼,把 EXE 簡單地分發(fā)給用戶就可以了。

當然,獨立 EXE 也可以嵌入更小的 JRE,aardio 里提供了一個示例 JRE,只要簡單的在代碼中加入

import java.jre.v6

就可以在軟件中嵌入一個精簡版的 JRE 6 運行時,這個 JRE 只有 6MB 多一點,而且可以生成獨立 EXE 文件,甚至還能支持 Windows XP 這種古老的系統(tǒng)。Java 寫的桌面軟件帶上運行時只有 6 MB,而且還是獨立 EXE 文 件,是不是難以置信?!想一想 Electron 沒寫多少功能就可能超過百 MB 的體積,Java 寫的桌面軟件算不算得上小、輕、快呢?!

現(xiàn)代 Java 已經(jīng)可以非常方便地生成精簡版的 JRE,所以你只要參考 java.jre.v6 的實現(xiàn)( 放心這個庫的源代碼只有幾行 ),就可以非常輕松地更換為其他 JRE 版本,并生成極小的 EXE文件( 而且可以是獨立的 EXE文件)。

好吧,我們來看幾個 aardio 自帶的 aardio Java 范例( 可以直接運行 )。

Java 快速開發(fā)幾 MB 獨立 EXE,寫圖形界面很方便(java怎么開發(fā)exe程序)

aardio 調(diào)用 Java 函數(shù)

首先請看下面 aardio 調(diào)用 Java 如此簡單,我們可以在 aardio 中直接導(dǎo)入 Java 的類,創(chuàng)建 Java 對象,就像在 Java 代碼中一樣使用它們。

import console;import java;//創(chuàng)建 Java 虛擬機var jvm = java();//導(dǎo)入 Java 類HelloworldApp = jvm.import( "aardio.sample.HelloworldApp");//修改類的靜態(tài)成員變量HelloworldApp.static_num = 996;//獲取類的靜態(tài)成員變量console.log( HelloworldApp.static_num );//直接用 Java 類創(chuàng)建 Java 對象,跟 Java 中一樣用就行var helloworld = HelloworldApp();//獲取對象的成員字段值console.log( helloworld.name );//調(diào)用對象的方法console.log( helloworld.test(1) );//調(diào)用 main 函數(shù),參數(shù)是字符串數(shù)組var ret = HelloworldApp.main( {"aaa字符串數(shù)組1","bbb字符串數(shù)組2"} );console.log(ret);console.pause();

Java 會在 CLASSPATH 指定的搜索目錄下使用 Java 類名(替換'.'為'')" 去查找類,這類似 Windows 到 %PATH% 環(huán)境變量下搜索文件。CLASSPATH 已默認添加 "/java/"以及"/java/*.jar" 在首次創(chuàng)建 Java 虛擬機以前,可用下面的函數(shù)添加目錄到 CLASSPATH:

java.addClassPath("/java/");

以上參數(shù)指定目錄下的 *.jar 也會自動添加(不遞歸子目錄)。

也可以如下自內(nèi)存或文件直接加載類,注意下面的路徑前面的$操作符可將文件編譯到代碼中(發(fā)布后不再需要原文件)

HelloworldApp = jvm.import("aardio.sample.HelloworldApp" ,$"javaaardiosampleHelloworldApp.class");

以上文件路徑前面的波浪線反斜杠(或斜桿)表示程序根目錄(開發(fā)時一般指工程目錄,發(fā)布后指啟動EXE文件所在的目錄)。

Java 調(diào)用 aardio 函數(shù)

示例:

import console;import java; //創(chuàng)建 Java 虛擬機var jvm = java(); //導(dǎo)入 Java 類HelloworldApp = jvm.import( "aardio.sample.HelloworldApp");//為 Java 提供 Native APIHelloworldApp.registerNative( function(env,jobject,jstring){ var code = jvm.parseString(jstring) //也可以用 owner.parseString(jstring) var func = loadcode(code) return jvm.string( func() ) },"aardio","string(string)") var helloworld = HelloworldApp();console.log( "Java 函數(shù)返回值",helloworld.test_aardio() );console.pause()

Java 類 HelloworldApp (在范例中可以找到)中如下聲明 aardio 函數(shù):

static native String aardio(String code);

aardio 直接運行 jar 程序

您僅需數(shù)句代碼可以將 jar 導(dǎo)入 aardio 生成軟件件。以 Java 編寫的軟件 FFDec 為例,原來只能自己去下載安裝 JRE,現(xiàn)在不用這么做了,我用 aardio 寫了個例子:

Java 快速開發(fā)幾 MB 獨立 EXE,寫圖形界面很方便(java怎么開發(fā)exe程序)

這個擴展庫 java.ffdec 的源代碼只有幾句:

Java 快速開發(fā)幾 MB 獨立 EXE,寫圖形界面很方便(java怎么開發(fā)exe程序)

aardio 調(diào)用 jar 的 main 函數(shù)

我們還可以直接調(diào)用 jar 的 main 函數(shù)來運行 Java 程序,以 YUICompressor 為例:

import java;import java.yuiCompressor;java.addClassPath("~libjavayuiCompressor.resyuicompressor.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 函數(shù)簽名

原本調(diào)用 Java 函數(shù)要寫簽名,但這個簽名寫起來是有些累的。所以 aardio 已經(jīng)把這個事情完全給優(yōu)化掉了,aardio 調(diào)用 Java 一般不用再去寫簽名。

但是 aardio 仍然允許以聲明普通靜態(tài) API 函數(shù)的語法指定 Java 函數(shù)簽名 —— 然后由 aardio 自動翻譯為 Java 函數(shù)簽名。

舉個例子:

import java;var jvm = java();//導(dǎo)入 Java 類HelloworldApp = jvm.import( "aardio.sample.HelloworldApp"); //getMethod 用于獲取一個函數(shù),參數(shù) @2 指定函數(shù)簽名var main = HelloworldApp.getMethod("main","string(string[])");//通過聲明導(dǎo)入的函數(shù),如果參數(shù)是字符串,可以把參數(shù)展開寫var result = main("test1","test2")

但是上面的函數(shù)簽名一般可以省略,可以簡化為下面的代碼:

HelloworldApp.main( { "aaa字符串數(shù)組1","bbb字符串數(shù)組2"} )

上面的示例需要的 Java 類,可以在? aardio 自帶范例里找到:

Java 快速開發(fā)幾 MB 獨立 EXE,寫圖形界面很方便(java怎么開發(fā)exe程序)

?

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2024年5月1日 下午2:19
下一篇 2024年5月1日 下午2:30

相關(guān)推薦

  • 國家重大科研項目重要性分析

    國家重大科研項目的重要性分析 隨著科技的不斷發(fā)展,國家重大科研項目已經(jīng)成為了國家發(fā)展的重要支撐。這些項目不僅代表了國家科技領(lǐng)域的前沿水平,還能夠為國家的經(jīng)濟、社會和文化發(fā)展帶來深遠…

    科研百科 2024年12月1日
    16
  • mmhmm視頻聊天應(yīng)用現(xiàn)面向所有Mac用戶開放(macbook視頻聊天)

    mmhmm視頻聊天應(yīng)用現(xiàn)面向所有Mac用戶開放(macbook視頻聊天) 由 Evernote 創(chuàng)始人菲爾·利賓(Phil Libin)創(chuàng)建的演示軟件 mmhmm 今天終于脫離 B…

    科研百科 2024年3月29日
    85
  • 施工進度計劃表樣本

    施工進度計劃表樣本 施工進度計劃表是確保項目按時完成的重要工具。一份好的施工進度計劃表可以幫助項目經(jīng)理和工程師更好地管理項目,并確保項目在預(yù)定時間內(nèi)完成。本文將介紹一份基本的施工進…

    科研百科 2024年5月24日
    40
  • 科研項目啟動領(lǐng)導(dǎo)講話

    尊敬的各位科學(xué)家、工程師、技術(shù)人員和管理人員,大家好! 今天,我們在這里聚集一堂,共同啟動一項新的科研項目。這個項目的啟動,標志著我們進入了一個全新的領(lǐng)域,開啟了一段新的旅程。在此…

  • 科研項目不是利潤中心

    科研項目不是利潤中心 近年來,隨著科技的不斷發(fā)展,科研項目逐漸成為了學(xué)術(shù)界和工業(yè)界關(guān)注的焦點。然而,一些研究人員和企業(yè)家卻將科研項目視為追求利潤的工具,忽視了科研項目的真正意義和價…

    科研百科 2025年2月27日
    5
  • 采購的三個管理內(nèi)容:合同、供應(yīng)商、供應(yīng)鏈(12373采購與供應(yīng)中的管理)

    采購在公司里雖說有那么多事情,但總結(jié)下來也就在做三件事:合同管理,供應(yīng)商管理,供應(yīng)鏈管理。管理層級是也是這樣,先要將日常的合同管理做好,再做供應(yīng)商管理,最后是供應(yīng)鏈管理。 ①合同管…

    科研百科 2023年12月2日
    211
  • 科研項目文檔和報告一樣嗎科研項目文檔和報告一樣嗎

    科研項目文檔和報告的區(qū)別是什么? 在開展科研項目的過程中,文檔和報告是不可或缺的組成部分。它們分別代表了不同方面的內(nèi)容,并且對于項目的進展和成果具有重要影響。本文將介紹科研項目文檔…

    科研百科 2024年9月11日
    2
  • 三品總包

    三品總包: 一個追求卓越的企業(yè)級總包服務(wù) 三品總包(Sinotrans General Packaging)是一家專注于總包服務(wù)的領(lǐng)先企業(yè),成立于2000年,總部位于中國上海。作為…

    科研百科 2024年11月12日
    0
  • 2016湖北省科研項目

    2016湖北省科研項目 2016年,湖北省政府推出了一系列旨在促進科技創(chuàng)新的政策措施,其中最為重要的是“創(chuàng)新湖北”戰(zhàn)略。這一戰(zhàn)略的核心是通過鼓勵企業(yè)技術(shù)創(chuàng)新和人才培育,推動湖北省的…

    科研百科 2025年3月19日
    0
  • 商鋪合同管理

    商鋪合同管理 商鋪合同管理是商業(yè)運營中非常重要的一環(huán),它涉及到商家和買家的利益,因此必須嚴格管理。本文將探討商鋪合同管理的關(guān)鍵問題,包括合同簽訂、合同執(zhí)行和合同終止等方面。 一、合…

    科研百科 2024年9月20日
    5