在Java(TM)平台SE二进制文件中打开

49
我试图删除两个文件中的一个,其中一个略有更改,以便我可以删除旧文件并用我更改过的新文件替换它。当我尝试删除该文件时,会收到错误消息“文件正在使用”,指出无法完成操作,因为该文件在Java(TM) Platform SE binary中打开。
如何关闭它?

2
检查Java进程是否正在运行 - 如果它持有文件锁,您可能需要终止Java进程(我假设这是您正在使用的测试盒而不是某个生产服务器)。 - ali haider
7个回答

95

这是对我有效的方法(在Windows上使用)。基本上,这个过程与ali haider所评论的相同,但具有更多的细节...

使用Windows命令提示符:

tasklist | findstr java

("findstr" 是 Windows 中类似于 Linux 中的 "grep" 的命令行实用程序)

搜索所有包含 'java' 的行,并记下 java 进程的 PID。

taskkill /F /PID "PID_OF_JAVA_PROCESS"

将“PID_OF_JAVA_PROCESS”替换为实际的进程ID号。

结果:

SUCCESS: The process with PID "PID_OF_JAVA_PROCESS" has been terminated.

对于每个正在运行的Java进程都重复这个步骤。现在,您应该能够找到您想要的文件!

如果您需要Linux(例如ps,kill等)的指令,请告诉我,但大多数Linux用户可能已经知道这些...


这对我在Windows 10上有效。通常我会去任务管理器并结束进程。但这一次它也没有出现在任务管理器进程中。 - Obaid
2
更简单的方法是直接执行:taskill /im java.exe /f。这对我来说达到了完全相同的效果。 - Recessive
1
@Recessive,你的命令中有一个错别字 - taskkill /im java.exe /f - was_777

28

只需在Windows上打开任务管理器,检查进程,关闭所有Java进程。 现在再尝试删除文件,您应该能够成功。 这对我有效。

干杯!


对我没有作用,每当我删除Java进程时,另一个Java进程立即创建,并且它占用了1 GB的内存。相反,我重启了Windows,问题得到解决。 - Akshay Vijay Jain

4

关闭Eclipse中的项目,然后它就可以工作了。


在我的情况下,是使用Android Studio。 - CGR

3
在Windows 8.1中:
1)开始菜单...选择"运行"并输入: msconfig,然后点击"确定"。
2)打开"系统配置",点击"启动"选项卡。
3)点击"打开任务管理器"。
4)选择"进程"选项卡。
5)在列表中找到"Java SE",右键点击并选择"结束任务"。
6)关闭"任务管理器"和"系统配置"窗口。
7)回到无法删除的文件上,右键点击并再次选择"删除"。完成......文件已被删除。

3
  1. 在Windows中打开任务管理器。
  2. 转到“查看-〉选择列”并选中命令行。
  3. 现在终止锁定文件的Java进程。 (命令行选项显示java进程的路径,从哪里执行,因此您不必不必要地终止所有java进程。)

对我没有用,每当我删除Java进程时,另一个Java进程立即创建,并且它占用了1 GB的内存。相反,我重启了Windows,问题得到解决。 - Akshay Vijay Jain
更新:我没有在“选择列”中看到“查看”选项,但您可以右键单击选项卡,其中之一就是它。谢谢! - Hugh Seagraves

2

如果它不是在系统启动时运行的内容,尝试重新启动以清除所有打开的文件。


6
有人会认为关闭一个打开的文件不需要重新启动电脑这么麻烦,应该还有其他解决方案吧! - robguinness

1

-打开任务管理器 -切换到详细信息选项卡 -查找名称为java.exe且命令行为你的jar路径 -右键点击 -结束任务

示例: 名称 命令行
javaw.exe "C:\Program Files\Java\jdk-11.0.2\bin\javaw.exe" -jar "C:\TEST\0.0.1-SNAPSHOT.jar"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接