簡體   English   中英

在IBM i上,java編譯器會“講” ILE嗎?

[英]On IBM i, will java compiler ever “speak” ILE?

在IBM i上,java編譯器會“講” ILE嗎? 谷歌搜索發現了各種代碼示例,這些示例顯示了RPG如何調用Java方法,但是找不到任何有關Java作為ILE語言的引用。 有沒有為此的計划,或者有理由為什么Java不能成為IBM i上的ILE語言?

如果完全可行的話,使Java成為與RPG和ILE C相同的完整 ILE語言將是一項艱巨的任務。 ILE語言具有以下特性: 鏈接到ILE程序時,可以自由混合和匹配其編譯模塊。 換句話說,一旦編譯了模塊,概念上就具有ILE模塊,並且在該模塊的源代碼中使用哪種語言並不是很重要。 您要做的就是確保調用代碼中的所有函數或過程原型都與被調用代碼中的相應原型兼容。

在Unix / Linux世界中,有一個項目試圖用Java來做到這一點,這就是GNU Java編譯器(GCJ) 這個想法是將Java模塊編譯成二進制形式,該二進制形式可以使用GCC通過(例如)C ++代碼直接鏈接。 目前尚不清楚這是否達到了“生產質量”,並且在撰寫本文時,GCJ不再是GCC的一部分。 因此,您可以將GCJ既視為假設的ILE Java的概念證明,又是針對ILE Java的告誡故事。

在這兩種情況下,實現ILE Java所需的工作可能都無法通過相對較小的好處來證明。 盡管您目前無法直接 Java代碼與ILE代碼鏈接 ,但是仍然可以從RPG 調用 Java和從Java 調用 RPG,這對於大多數用例來說已經足夠了。

比使用成熟的ILE Java更容易的是使用 ILE語言(最明顯的選擇是ILE C或ILE C ++)構建的JVM的IBM i本機實現,因此根本不使用PASE。 但是走這條路仍然需要使用現有的從RPG調用Java的方法,反之亦然,因此收益實際上為零。 而且,將JVM移植到ILE C ++的努力肯定大於零。 還請記住,IBM可能希望將其JVM更新為與Oracle的JVM差不多,並且使用PASE實現的JVM而不是使用ILE語言實現的JVM會更容易做到這一點。

IBM i上的Java不是ILE語言,而是實際上以PASE運行(對於更多最新版本)。

RPG可以通過創建JVM並運行Java應用程序來調用Java代碼。

從Java調用RPG代碼的通常方法是使用ProgramCallProgramCallDocument類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM