這是歷史版本頁面 — 看 Java Runtime Environment (32-bit) 最新版本

Java Runtime Environment 是做什麼的?為什麼有些軟體一定要裝它

Java Runtime Environment (32-bit) 軟體圖示 Java Runtime Environment (32-bit) 112 (32-bit) 資料更新 2016-10-18 閱讀約 6 分鐘

打開某個老遊戲、公司內部系統、或是某個下載來的程式,畫面跳出一串「需要 Java」的提示,但你根本不知道那是什麼。裝了怕佔空間,不裝又跑不動,卡在「到底要不要裝」的猶豫裡。這種情況通常發生在你想開一個特定程式或網站,卻被一個沒聽過的執行環境擋在門外。

一般人遇到這種提示,直覺是上網找「Java 下載」,裝完發現問題解決了,但過一陣子又跳出「需要更新」,然後開始擔心是不是裝到病毒。這類執行環境工具的本質,是提供一個讓 Java 程式能跑的底層平台——它不是應用程式本身,而是程式賴以運作的基礎設施。理解它負責什麼、什麼時候需要、什麼時候可以不理它,比盲目安裝或刪除都更重要。

01Java Runtime Environment 是做什麼的?為什麼有些軟體一定要裝它?

它提供 Java 程式執行時需要的虛擬機器、核心函式庫和相關元件。很多網站、遊戲和企業內部系統是用 Java 寫的,這些程式在執行時會呼叫 Java 的函式庫,沒有這套環境就無法啟動。你可以把它想成程式的「翻譯官」,負責把 Java 寫好的指令轉換成你的電腦能理解的動作。官方說明指出,許多跨平台應用程式都需要 Java 才能正常運作。

02它跟 Java Development Kit 有什麼不同?

這套軟體是「執行環境」,只負責讓 Java 程式跑起來,不包含編譯器或除錯器等開發工具。如果你只是要使用別人寫好的 Java 程式,裝這個就夠了。但如果你要自己寫 Java 程式、編譯原始碼,就需要另外安裝 Java Development Kit(JDK),它內含完整的開發工具,也包含這套執行環境。官方文件明確說明 JRE 不包含開發工具。

03裝了它之後,哪些東西可以跑起來?

主要能跑三類東西:網頁瀏覽器裡的 Java 小程式(applet)、透過 Java Web Start 啟動的獨立應用程式,以及一般 Java 應用程式。官方說明提到,Java Plug-in 讓小程式能在瀏覽器中執行,Web Start 則能從網路部署獨立程式。此外,很多跨平台應用程式也需要它才能運作。實際能跑什麼,取決於你手上的程式是用 Java 寫的,而且版本要相容。

04它會自己更新嗎?還是要手動裝新版?

官方說明建議升級到最新版本,因為新版包含效能、穩定性和安全性的增強。但這套軟體本身不會自動更新,你需要自行到官方網站下載新版安裝。從版本紀錄來看,它持續有更新,近一年內有多次新版本釋出。如果你長期使用舊版,可能會有安全風險,建議定期檢查是否有新版本。

05瀏覽器現在還需要它嗎?

現代主流瀏覽器大多已停止支援 Java Plug-in,官方說明中提到的「在瀏覽器中執行小程式」功能,在目前的瀏覽器環境下已經很少能派上用場。不過,Java Web Start 技術仍可用來啟動獨立應用程式。如果你只是為了開瀏覽器裡的 Java 內容,可能要確認你的瀏覽器是否還支援;如果是為了跑桌面應用程式,那它仍然有用。

06我只是想玩某個老遊戲,需要裝它嗎?

如果那個老遊戲是用 Java 寫的,就需要。很多早期網頁遊戲和單機小遊戲是用 Java 開發的,沒有這套環境就無法啟動。你可以先確認遊戲的系統需求或說明文件,看是否提到需要 Java。要注意的是,老遊戲可能需要特定版本的 Java,裝了最新版不一定能跑,可能需要找舊版來搭配。

07我是寫程式的,裝這個夠用嗎?

不夠。這套軟體只提供執行環境,沒有編譯器、除錯器這些開發工具。官方文件明確指出,要進行 Java 開發,需要的是 Java Development Kit(JDK),它包含 JRE 以及編譯、除錯、打包應用程式的額外工具。如果你只是要執行別人寫好的 Java 程式,裝這個可以;但如果你要自己寫程式,請改裝 JDK。

08公司內部系統一直叫我裝 Java,這是正常的嗎?

正常。官方說明提到,Java 是企業內部應用程式和電子商務解決方案的基礎,很多公司內部系統是用 Java 開發的。如果你的公司系統要求安裝,通常是因為那些系統的後端或前端元件需要 Java 才能運作。建議依照公司 IT 部門的指示安裝,並確認版本是否符合系統需求。

09我的電腦是 Windows 11,可以裝嗎?

官方支援清單只列到 Windows 7、Windows 8 和 Windows 10,沒有提到 Windows 11。這不代表它一定不能裝,但官方沒有保證相容性。如果你用的是 Windows 11,建議先到官方網站確認是否有對應的版本,或直接安裝試試看,但要有心理準備可能遇到相容性問題。

10它只有英文介面,看不懂怎麼辦?

這套軟體的介面是英文,但安裝過程和日常使用其實不太需要看介面——它安裝完之後多半在背景執行,你不太會直接跟它的介面互動。真正需要英文的地方是安裝精靈的按鈕,通常就是「Next」「Agree」這類基本單字。如果你完全不熟悉英文,可以找網路上安裝教學文,照著步驟點即可。

11網路上有人說 Java 有安全問題,還該裝嗎?

官方說明強調這套軟體具備安全功能,包括安全管理器、沙箱環境、數位簽章和加密機制,用來防範惡意行為。但任何軟體都有潛在風險,重點是保持更新——官方建議安裝最新版本以獲得安全性增強。如果你不需要跑 Java 程式,不裝也無妨;如果需要,請從官方網站下載,並定期更新。

12我已經有 .NET Framework 了,還需要它嗎?

需要。.NET Framework 和 Java Runtime Environment 是兩套完全不同的執行環境,各自負責不同程式語言寫成的應用程式。.NET Framework 是給 .NET 程式用的,Java 程式無法靠它執行。如果你要跑的程式是用 Java 寫的,就算裝了 .NET Framework 也沒用,還是需要這套軟體。兩者可以並存,不會互相干擾。

下載與官方連結

前往官方網站 下載 Java Runtime Environment (32-bit)

jre-8u112-windows-i586.exe · 53.49 MB · 連結指向軟體原廠

版本紀錄

再看 5 筆

看完整版本清單

這一版改了什麼

What's new in this version:

CHANGES:

security-libs/java.security:
- SunPKCS11 Provider no longer offering SecureRandom by default
- SecureRandom.PKCS11 from the SunPKCS11 Provider is disabled by default on Solaris because the native PKCS11 implementation has poor performance and is not recommended. If your application requires SecureRandom.PKCS11, you can re-enable it by removing "SecureRandom" from the disabledMechanisms list in conf/security/sunpkcs11-solaris.cfg
- Performance improvements have also been made in the java.security.SecureRandom class. Improvements in the JDK implementation have allowed for synchronization to be removed from the java.security.SecureRandom.nextBytes(byte[] bytes) method.

BUG FIXES:
- client-libs 2d GraphicsDevice.getConfigurations() is slow taking 3 or more seconds
- client-libs 2d Xrender: Class cast exception in 2D code running an AWT regression test
- client-libs 2d java/awt/Window/WindowsLeak/WindowsLeak.java fails
- client-libs 2d Wrong glyph is displayed for a derived font
- client-libs 2d [win10] Some unicode characters do not display any more after upgrading to Windows 10
- client-libs 2d ClassCastException: sun.font.CompositeFont cannot be cast to PhysicalFont
- client-libs 2d CCE: sun.java2d.NullSurfaceData cannot be cast to sun.java2d.opengl.OGLSurfaceData
- client-libs java.awt java.awt.SplashScreen.getSize() returns incorrect size for high dpi splash screens
- client-libs java.awt:i18n Caps Lock doesn't work as expected when using Pinyin Simplified input method
- client-libs javax.accessibility [macosx] sun.lwawt.macosx.CAccessible leaks
- client-libs javax.accessibility Uninitialised memory in WinAccessBridge.cpp:1128
- client-libs javax.accessibility Jaws reads wrong values from comboboxes when no element is selected
- client-libs javax.swing Selection in JList is drawn with wrong colors in Nimbus L&F
- client-libs javax.swing javax.swing.text.html.parser.Parser parseScript incorrectly optimized
- client-libs javax.swing JComboBox prevents wheel mouse scrolling of JScrollPane
- client-libs javax.swing Personalized Windows Font Size is not taken into account in Java8u102
- client-libs javax.swing JEditorPane.createEditorKitForContentType throws NPE after 6882559
- core-libs java.lang Annotations with lambda expressions has parameter result in wrong behavior.
- core-libs java.lang.invoke MHs.Lookup.findConstructor returns handles for array classes
- core-libs java.nio (se) Selector.select(long) uses wrong timeout after EINTR (lnx)
- core-libs javax.naming LDAP "follow" throws ClassCastException with Java 8
- core-libs javax.naming com.sun.jndi.ldap.SimpleClientId produces wrong hash code
- core-libs javax.naming Non-synchronized access to shared members of com.sun.jndi.ldap.pool.Pool
- core-libs javax.script ReferenceError in 1.8.0_72
- core-libs jdk.nashorn streamline input parameter of Nashorn scripting $EXEC function
- core-libs jdk.nashorn "ant test" fails to complete on Windows when run under cygwin shell
- core-libs jdk.nashorn Negative lookahead in RegEx breaks backreference
- core-libs jdk.nashorn Simplify Nashorn's Context class loader handling
- core-libs jdk.nashorn Nashorn shebang argument handling is broken
- core-libs jdk.nashorn Regression: two tests fail on Windows with "ant test" target
- core-libs jdk.nashorn fix Nashorn shebang argument handling on Mac/Linux
- core-libs jdk.nashorn arguments are handled differently in apply for JS functions and AbstractJSObjects
- core-libs jdk.nashorn Parsing issue with automatic semicolon insertion
- core-libs jdk.nashorn Script stack trace should display function names
- core-libs jdk.nashorn JSON.stringify does not work on ScriptObjectMirror objects
- core-libs jdk.nashorn Callback parameter of any JS builtin implementation should accept any Callable
- core-libs jdk.nashorn TypeError when a java.util.Comparator object is invoked as a function
- core-libs jdk.nashorn AccessControlException is thrown on public Java class access if "script app loader" is set to null
- core-svc Tests in com/sun/jdi fails intermittently with "jdb input stream closed prematurely"
- core-svc debugger com/sun/jdi/OptionTest.java test times out again
- deploy [macosx] Java Control Panel unable to perform tasks requiring admin privileges
- deploy [macos] JVM continuously throw a NullPointerException on new MacOS 10.12
- deploy javafx FXUIToolkit.showFileChooser() fails when jre is below 7u21
- deploy javafx FXUIToolkit.showSandboxSecurityDialog fails when running jre below 7u21
- deploy javafx FXUIToolkit.showMessageDialog() fails when running jre below 7u55
- deploy webstart Add a URL scheme handler to reliably launch .jnlp files - Mac registration part
- deploy webstart Change JavawsLauncher.app to use NSTask or execv
- deploy webstart Desktop shortcut is not updated after JNLP is changed in deployment cache
- deploy webstart Allow always checkbox in security dialog when jnlp location is unknown
- deploy webstart Signed JWS application unexpectedly asks for permission to open a socket
- hotspot compiler Math.pow yields different results upon repeated calls
- hotspot compiler Need to bailout cleanly if creation of stubs fails when codecache is out of space
- hotspot compiler CastII/ConvI2L for a range check is prematurely eliminated
- hotspot compiler PPC64: unaligned Unsafe.getInt can lead to the generation of illegal instructions
- hotspot compiler Partially initialized string object created by C2's string concat optimization may escape
- hotspot gc G1: UseSHM in combination with a G1HeapRegionSize > os::large_page_size() falls back to use small pages
- hotspot gc Confusing message in "Current rem set statistics"
- hotspot gc allocating heap with UseLargePages and HugeTLBFS may trash existing memory mappings (linux)
- hotspot gc Long response times with G1 and StringDeduplication
- hotspot gc Test gc/ergonomics/TestDynamicNumberOfGCThreads.java fails
- hotspot jvmti Crash in Method::checked_resolve_jmethod_id(_jmethodID*)
- hotspot jvmti Fix for JDK-8147451 failed: Crash in Method::checked_resolve_jmethod_id(_jmethodID*)
- hotspot runtime Null ProtectionDomain in JVM can cause NPE because principals field is not initialized to an empty array
- hotspot runtime vm/mlvm/anonloader/stress/byteMutation failed with: assert(index >=0 && index < _length) failed: symbol index overflow
- hotspot runtime ConstantPool::release_C_heap_structures not run in some circumstances
- hotspot runtime Convert an assert in ClassLoaderData to a guarantee
- hotspot runtime Zero: Better byte behaviour
- hotspot runtime SIGSEGV: Metadata::mark_on_stack
- infrastructure release_eng 8u112 template file need to be updated
- install install jdk 8u71 fails to install with no error message
- install install ent msi does not have double-click support
- javafx application-lifecycle Passing objects between JavaScript (JavaFX / WebKit) and Java causes a memory leak
- javafx base SortedList wrapping a FilteredList causes AIOOBE
- javafx controls TreeTableView's selectedItems reports include null items.
- javafx controls [TreeTableView] graphic property of TreeItem is still visible after collapsing tree
- javafx controls Enhance CustomColorDialog to have flexibility to hide 'Opacity', 'Use' and 'Save' Button
- javafx graphics Scene content shows too large on Retina display, when a regular screen attached
- javafx graphics Print jobs do not finish when using a page range
- javafx graphics javafx print jobs take 60 times longer than javax.print
- javafx graphics Generated temp files (+JXF...temp) for custom fonts not deleted on exit.
- javafx graphics changes to compile under Visual Studio 14.0
- javafx graphics Crash while running imported/w3c/canvas/2d.gradient.interpolate.overlap2.html
- javafx graphics ContextMenu shown at wrong position on Windows10 with Extended Screen
- javafx graphics Revert fix for JDK-8150181 to push it with the correct commit message
- javafx graphics JavaFX Path drawing appears to leak native memory
- javafx web Javascript Timing Events stop work on system clock changes at past
- javafx web WebView Tooltip position no longer changes in 8u60
- javafx web WebView can't alert from a timer
- javafx web Debug build is not working after new WebKit upgrade
- javafx web NullPointer exception in WebView
- javafx web SQL Server Reporting Services in WebViews shows 401
- javafx web [WebView] Icon font doesn't work if single page application will be loaded from jar
- javafx web Need to document that JavaScript to Java bindings use weak references
- javafx web Update to newer version of WebKit
- javafx web DRT crash at fast/css-generated-content/initial-letter-basic.html
- javafx web Update java-wrappers for WebKit generated classes following WebKit update
- javafx web Linux: Javascript Timing Events stop work on system clock changes at past
- javafx web Linux: libjfxwebkit.so has hard-coded path
- javafx web Char value is set as integer, not as character
- javafx web Add timestamp to WebView Keyboard Event
- javafx web Can't get file size with javascript
- javafx web the JVM for our Swing application crashes, once we login into our application server
- javafx web WebView cannot render CSS background image with SVG data
- javafx web Char value is returned as integer, not as character
- javafx web Test Case Failure in CallBackTest
- javafx web WebView can't alert from a timer
- javafx web jvm crash at javafx com.sun.webkit.WebPage.twkPrePaint (GFlag + Heap verification)
- javafx web Implement overridePreference() for DRT framework
- javafx web [WebView] Unable to tile SVG image using css background property
- javafx web WebEngine doesn't handle html5 color picker
- javafx web Assertion fails with https://html-online.com/editor/
- javafx web [Win] Timer functionality is broken after JDK-8089563
- javafx web [OS X] Compilation Issue in WebPage.cpp
- javafx web Fix compilation warnings in WebCore and JavaScriptCore
- javafx web EOFException in GZIPInputStream.readUByte while browsing
- javafx web [WebView] WebView can't display social network icons on wellsfargo.com
- javafx web General sibling selector is broken for selected input boxes in WebView
- javafx web Website weibo.com cannot be loaded
- javafx web JavaFX browser can get stuck in an infinite loop when calling path.getTotalLength()
- javafx web [Windows] JavaFX crash in WebPage.twkOpen in 8u112 when closing WebView while debugging
- javafx web Loading "https://www.windyty.com" with JavaFX WebView crashes JVM.
- other-libs corba NullPointerException in IIOPInputStream.inputClassFields
- security-libs java.security New fix for memory leak in ProtectionDomain cache
- security-libs java.security SecureRandom.nextBytes() hurts performance with small size requests
- security-libs java.security Print size of DH keysize when errors are encountered
- security-libs java.security Some methods of java.security.Security require more permissions, than necessary
- security-libs javax.crypto Ucrypto config file cannot be read when -Dfile.encoding=UTF-16 is set
- security-libs javax.crypto Improve jurisdiction policy file signing exception
- security-libs javax.crypto:pkcs11 KeyStore.load() throws an IOException with a wrong cause in case of wrong password
- security-libs javax.crypto:pkcs11 LoadKeystore.java test is failing
- security-libs javax.net.ssl Hot lock on BulkCipher.isAvailable
- security-libs javax.net.ssl Make handling of 3rd party providers more stable
- security-libs javax.security The fix for 8050402 was partially committed
- security-libs org.ietf.jgss:krb5 Relax response flags checking in sun.security.krb5.KrbKdcRep.check.
- security-libs org.ietf.jgss:krb5 Semicolon is not recognized as comment starting character (Kerberos)
- tools Native2ascii doesn't close one of the streams it opens
- tools javac Incorrect class file created when passing lambda in inner class constructor
- tools launcher Showing incorrect result while passing specific argument in the Java launcher tools
- xml jaxp Issue in XMLScanner: EXPECTED_SQUARE_BRACKET_TO_CLOSE_INTERNAL_SUBSET when skipping large DOCTYPE section with CRLF at wrong place