macOS Java 一旦启动为何要常驻后台,如何设置自动退出

2023-02-02 20:11:20 +08:00
 ChengLuffy

首先,我完全不了解 Java ,使用 Homebrew 安装的 openjdk ,只是写 Flutter 时用,偶尔打开 Android 模拟器。

今天发现退出 vscode 和 Android 模拟器后,Java 依然在后台运行,并且占用的内存比较多,所以有了题中的疑问。

java 一旦启动为何要常驻后台,是否可以设置自动退出,如何设置?

1406 次点击
所在节点    程序员
9 条回复
guyeu
2023-02-02 20:14:11 +08:00
Java 不是应用程序,vscode 和 android 模拟器也都不是用 java 跑的。。你需要看看那个 java 进程具体是什么应用
Bingchunmoli
2023-02-02 20:14:53 +08:00
安装 openjdk 并不会启动,java 是否后台根据应用策略和启动命令
ChengLuffy
2023-02-02 20:16:03 +08:00
@guyeu Flutter 运行在 Android 模拟器是启动的 Java 进程
debuggerx
2023-02-02 20:16:24 +08:00
是 gradle 的守护进程吧,用于加快编译速度的,可以设置不要开启守护
ChengLuffy
2023-02-02 20:19:32 +08:00
@Bingchunmoli 嗯,目前可以确认启动 Android 模拟器不会启动 Java ,但是 Flutter 选择 Android 模拟器运行后,Java 进程就启动了,这个我理解,和前端运行时 node 进程会启动,iOS 运行时 SourceKit 等会启动一个道理,我奇怪的是为什么不会在 Flutter 、Dart 、vs code 、Android 模拟器都退出后,Java 进程不会自动关闭
ChengLuffy
2023-02-02 20:20:14 +08:00
@debuggerx 诚信求教,低内存机器
ChengLuffy
2023-02-02 20:34:48 +08:00
@debuggerx 根据您的提示我找到了,十分感谢,开了下开启的好处,主要是优化 Gradle 的启动和构建时间等,对我可能几天打开一次 Android 模拟器的用处不大,在 `gradle.properties` 添加 `org.gradle.daemon=false` 试了一下好像不再有 Java 进程常驻后台了,十分感谢
Bingchunmoli
2023-02-03 13:52:14 +08:00
@ChengLuffy 内存泄露了吧,看下 flutter 的逻辑
ChengLuffy
2023-02-03 13:54:53 +08:00
@Bingchunmoli 已经确认了,就是 Gradle 的守护进程

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/912691

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX