-
1 # 程式設計圈子
-
2 # 依然菜刀
是的,如果你能做出像gcj那樣的編譯器,絕對可以!但是可能會限制一些動態特性,比如動態載入類,比如反射,比如包的掃描。。。所以需要虛擬機器執行時支援的特性都不能用!
-
3 # 熊貓程式設計
怎麼說呢,java要執行就得有jvm環境。微控制器有andriod環境的比較少。用c/c++較多。
再者java是高階語言,不能直接操控底層硬體。在如c直接
-
4 # 閒人老盧
事實上,目前的Java語言沒有辦法執行在微控制器上。Java語言不是一種編譯型語言,是一種位元組碼解釋型語言。Java程式碼的執行除了需要一個Java虛擬機器,還需要一大堆相關的基本庫。以arm處理器為例,arm 32位版本的Java虛擬機器執行時佔用記憶體空間為190M位元組,基本庫和你的程式碼執行空間還不包括在內。如果一個處理器被稱為微控制器,記憶體一般以KB計算,有些高階微控制器有1M或2M記憶體已經不得了了。這裡記憶體容量是指RAM,不是快閃記憶體。這個評估還是把微控制器字長,作業系統,指令系統給忽略的情況下做出的。說到Java的本質,就是執行在哪裡,就要把編譯器安裝到哪裡的累贅語言。此外,由於Java使用了動態記憶體自動回收機制,使得這種語言不可能應用於資源緊缺型處理器。
-
5 # 極客貓gg
理論上沒問題,不過好像沒人這麼做,最搞笑的是JAVA本來就是為了在各種不同微控制器上能有統一程式碼而設計的。。。
-
6 # 使用者4775271310819
理論很豐滿,現實很骨感,在一個平臺架構上,java的許可權好像沒這麼高,最高的許可權是韌體,往上是作業系統,透過韌體,可以直接殺死作業系統,透過硬體可以殺死韌體,直接一斷電啥都沒用
-
7 # 日衝資訊 黃
用JAVA做微控制器程式不但不可行而且沒有必要。
微控制器是最簡潔的計算機。微控制器程式寫在記憶體中由CPU直接讀取執行。而手機和個人電腦則需要從檔案系統中將程式讀到記憶體中再執行。JAVA程式要更復雜一些,需要先編譯成位元組碼,在執行的時候由不同作業系統上的虛擬機器,根據所在系統的指令集進行實時編譯之後再執行的。JAVA不能脫離作業系統。
可是微控制器上沒有也不需要作業系統,根本不具備JAVA程式的執行條件。儘管理論上可以對JAVA程式靜態編譯後寫到微控制器上再執行。但這麼做了JAVA程式的很多特性都失去了意義,還不如直接用C語言寫出來即簡單又有效率。
-
8 # 日後不使用者
Java最初設計的初衷是透過網路來控制微波爐等微控制器裝置做演示,所以當初設計成跨平臺,並發展出了j2se、j2me、applet以及後面的j2ee,j2me就是移動端的方案,也就是為微控制器準備的,現在官方網站應該還有微控制器版本的虛擬機器環境下載,Java發展的今天表面看只有j2se和j2ee,其實Android系統就是Java的微控制器方案,google把sun公司的Java班底挖過去重構的,但是Google給他換了個名,在官方場合是不承認這是Java擴充套件的!
-
9 # Ren
把JAVA抽條成幾塊錢微控制器也能執行的瘦系統的話,也就失去了JAVA的意義了,和C也就沒有什麼本質不同了,純屬為了JAVA而JAVA。
-
10 # 搖椅小琦
回答裡多是不怎麼懂java的前端小程式設計師,對java理解太狹隘,Java最初的設計就是用於嵌入式的(當Java還叫Oak的時候,它是用於超前於時代很多的*7(Star-7)PDA專案),Java SE Embedded、Java ME(其中例如Blu-ray Disc Java(BD-J))、JavaCard、Sun SPOT是幾種不同層面的嵌入式Java開發技術。有興趣的可以去搜索瞭解。
實際上嵌入式系統用java寫軟體很廣泛和常見的,會把jvm一起刷到韌體執行,比如身邊的安卓電視,機頂盒還有車載的大屏影音娛樂裝置(常見的MTK+Android方案)都是典型的Android+Java的應用。
此外商場飯店用於掃碼的POS機,甚至有時你看到商場內展示影象和樓層資訊的顯示螢幕,這些也屬於使用嵌入式Linux+Android+Java的應用。
嵌入式Linux+Android系統+Java軟體的應用在影音娛樂方向目前可以說成為主流。實現影音影象類應用
回覆列表
通常微控制器用Java的不多,一般用C或C++。但也有的微控制器可以用Java,這樣的微控制器需要整合JVM,如freeRTS就可以使用Java。現在ARM核的微控制器在大量應用,ARM不僅可以支援Java,還可以執行多種作業系統。
而Java起源,就是用於電視機、電話、鬧鐘、烤麵包機等家用電器的控制和通訊。可是它誕生的太早了,後來在發展中改變了自身的主要應用方向。