java-什么是JRE

來看看第一個Java程式:
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

這段程式執行的動作是請作業系統(System)的標準輸出(out)顯示一行文字(println)叫"Hello World!"。物件導向程式好懂的地方在於,它模擬真實世界中的事物,
可以 像這樣看著程式講出一段故事。

對Java 程式來說,JVM是它唯一認得的作業系統,如果要在JVM上執行程式,一定得定義並編譯出一個可執行程式,這個可執行程式的副檔名是.class。例如你的Hello World程式要執行,就是在JVM上執行HelloWorld.class這個JVM的可執行檔。

在程式中,使用到System這個程式,但你沒有寫過System並編譯為System.class,這個程式哪裡來的?其實就是在JRE(Java Runtime Environment)中已經有提供的程式。

那麼,為什麼不這麼寫呢?
OS.out.show("Hello World!");

或者是這麼寫呢?
Platform.out.writeLine("Hello World!");

如果每個JRE提供的程式庫中各程式名稱不統一,例如在這個程式庫中叫OS,那個程式庫中叫Platform,那在這個JRE中寫的程式,一定不能在另一個JRE上執行,如此就不可能完成Java跨平台的任務。

Java不僅僅是個語言,更是一個標準。當製訂API時,有興趣的各大廠商提出自己的API,最後大家得一起投票,決定最後的API名稱等規格,而後各大廠再去實作API,也因此,在這個JRE中所提供的程式庫,才能保證在另一個JRE也有提供,這些大廠們共同製定的API,就是所謂的標準程式庫,或叫作Java SE API

Java程式會引用標準程式庫,並執行在JVM這個唯一認識的系統之上,這樣才能達到跨平台的目的。標準程式庫及JVM,都包含在JRE之中。所以
Java程式要能夠執行在電腦中,就必須安裝JRE。如果你的程式有引用到標準程式庫,就直接由JRE提供,而所有的程式(包括自定義的程式與標準程式庫提供的程式)是執行在JVM上。


實際上,JRE還包括了部署(Deployment)技術,也就是如何將你的程式安裝到客戶端的技術,我不打算討論這個。完整的Java SE平台示意圖,可以在這邊找到:http://java.sun.com/javase/technologies/index.jsp

在那張圖中,可以看到,JRE包括了部署技術、Java SE API(也就是標準程式庫)以及JVM。提供的標準程式庫,包括了寫視窗時會用到的AWT、Swing,畫圖用的Java 2D,寫資料庫時的JDBC等。那張圖很好用,滑鼠移上去後,會反白的主題表示有鏈結可以按下,按下去就是該主題的文件說明,可以善加利用。
### 如何使用 `java -verbose` 查看 JRE 的安装位置或路径 当运行带有 `-verbose` 参数的 Java 命令时,它会输出详细的加载类信息以及对应的库文件路径。这些信息可以帮助定位 JRE 或 JDK 的实际安装路径。 以下是具体说明: #### 使用方法 可以通过以下命令来启动一个简单的 Java 应用程序并附加 `-verbose` 参数: ```bash java -verbose - ``` 如果只是想测试而不指定任何特定的应用程序,可以直接尝试运行内置的小型工具或者脚本。例如: ```bash java -verbose -version ``` 此操作将会打印出 JVM 加载过程中涉及的所有共享对象(`.so` 文件在 Linux 上,`.dll` 文件在 Windows 上),其中包括它们所在的绝对路径[^1]。 #### 输出解析 典型的输出可能如下所示: ``` [Opened C:\Program Files\Java\jre_version_number\lib\rt.jar] ... [Loaded java.lang.Object from C:\Program Files\Java\jre_version_number\lib\rt.jar] ``` 上述日志中的路径即为当前使用的 JRE 安装目录的一部分。注意这里的路径指向的是具体的 `.jar` 文件或其他资源的位置,因此可以根据该提示推断完整的 JRE 路径[^5]。 对于不同操作系统还有其他辅助手段获取更确切的结果: - **Linux**: 可以利用 `whereis java` 来快速定位主要可执行文件及其关联文档和二进制组件所在位置[^2]. - **Windows**: 如果 PATH 中存在多个版本,则需逐一排查优先级最高的条目才是正在被调用的那个实例[^3]. 默认情况下,JRE会被放置于类似于下面这样的标准结构里: ``` C:\Program Files(x86)\Java\jre_version\ ``` 另外值得注意的是,某些场景下用户可能会只部署了一个精简版不含开发套件(JDK)仅有基础运行支持(JRE)的情况发生;此时建议重新考虑全面安装含编译器等功能模块在内的完整发行包以便获得更好的兼容性和功能扩展可能性[^4]. ```python import os print(os.popen('java -verbose -version').read()) ``` 以上 Python 小片段可用于跨平台捕获终端反馈进而分析处理.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值