0 0

java调用cmd.exe的问题5

我想在java程序中调用windows的cmd命令。首先,更新文件夹中的数据。然后,获取更新后的文件夹中各个文件的大小。
程序代码如下:
Runtime run = Runtime.getRuntime();
int revision = Integer.parseInt(scmlog.getRevision());
//更新文件夹中的数据
run.exec("cmd /c hg update " + revision, null, new File(REPO_PATH));
//获取更新后文件大小
Process p = run.exec("cmd /c " + styleParentPath + "/fileSize.bat " + path, null, new File(REPO_PATH));
InputStream is = p.getInputStream();
byte[] buff = new byte[8];
is.read(buff);
// 把buff中的byte数据经过decode, 转化为字符串str
String str = new String(buff);
str = str.trim();


这个程序是可以运行的,但是有个问题。就是更新文件夹数据后,电脑磁盘上文件夹数据并不能立刻更新完成(磁盘上数据更新需要一定的时间,尽管这个时间可能很短)。但是获取文件大小的命令在上个命令执行之后会立即执行。这就导致了更新后的文件夹中第一个文件的大小获取不到(通常是0)。

各位大神有没有什么好的解决方法

问题补充:
zyn010101 写道
Thread.sleep(1000);
线程暂停1秒钟也不能解决问题呀,如果要更新的文件数很多怎么办?这个时间怎么确定?

问题补充:这个也不行的,判断条件的结果都是文件已存在, 但是文件还没有写完, 这时候获取的size不是准确的size(比真实的size要小)。
flashsnow 写道
写一个while循环,其中判断文件是否已经生成,如果没有,则让当前线程sleep 100毫秒,否则跳出

2012年4月24日 11:43

2个答案 按时间排序 按投票排序

0 0

Thread.sleep(1000);

2012年4月24日 14:57
0 0

写一个while循环,其中判断文件是否已经生成,如果没有,则让当前线程sleep 100毫秒,否则跳出

2012年4月24日 12:34

相关推荐

    java中两种方式调用其他.exe可执行程序

    Java 中两种方式调用其他.exe 可执行程序 Java 是一种广泛应用于企业级应用开发的编程语言,可以调用其他.exe 可执行程序,实现一些特殊的功能。在 Java 中有两种方式可以调用其他.exe 可执行程序,即使用 `Desktop...

    仿照windows下的CMD.EXE程序

    【标题】:“仿照windows下的CMD.EXE程序” 在Windows操作系统中,CMD.EXE是一个非常重要的命令行界面工具,它提供了用户与操作系统交互的方式,允许执行各种系统命令、管理文件和运行程序。VB(Visual Basic)是...

    java中调用本地exe文件

    List<String> commands = Arrays.asList("cmd.exe", "/c", "dir C:\\Windows"); ProcessBuilder pb = new ProcessBuilder(commands); pb.redirectErrorStream(true); // 合并标准输出和错误输出 Process p = pb....

    java 以管理员身份调用cmd 需要用到的文件

    在Java编程中,有时我们需要执行...总之,要以管理员身份在Java中调用CMD,可以通过`nircmd.exe`这样的辅助工具来实现,或者利用Java自身的API进行权限请求。理解这个过程对于编写需要高权限操作的Java程序至关重要。

    Java_CMD.rar_java cmd

    这时,我们可以利用Java的`Runtime`类或`ProcessBuilder`类来调用CMD(命令提示符)命令。本文将详细讲解如何在Java程序中调用CMD命令。 首先,我们来看`Runtime.getRuntime().exec()`方法,这是最常用的方式来执行...

    chrome 调用exe

    `native_cmd.bat`可能是一个批处理文件,用于执行`demo.exe`。 ```javascript document.getElementById('runExe').addEventListener('click', function() { chrome.runtime.sendNativeMessage('...

    java调用cmd创建定时任务

    java语言通过cmd命令在远程电脑上创建定时任务,从而达到控制远程开启或者关闭自己想要处理的应用程序,而不用亲临。很简单,由于win10系统的安全性,使用邮箱在线注册过的win10估计是不行的,自己试吧。

    Windows系统中Java调用cmd命令及执行exe程序的方法

    ### Java调用cmd命令 1. **使用Runtime类**: Java中可以使用`Runtime`类来获取Java程序的运行时对象。通过运行时对象,可以使用`exec()`方法来执行系统命令。 2. **命令格式**: 在Java中执行cmd命令时,常用的...

    regsvr32.exe问题解决方案

    ### regsvr32.exe问题解决方案 在遇到电脑无法打开所有邮箱及QQ空间的情况时,用户发现这并非由病毒或恶意软件引起,而是浏览器出现了问题。进一步排查后,得知可能是由于jscript.dll文件未被正确注册所导致。通过...

    Hadoop2.7.3 Window10 hadoop.dll winutils.exe

    在本文中,我们将深入探讨如何在Windows 10操作系统中使用Hadoop 2.7.3版本进行开发,特别关注“hadoop.dll”和“winutils.exe”这两个关键组件。Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在...

    jad.exe 反编译工具

    jad.exe 是一个经典的Java字节码反编译工具,它能够将Java的.class文件转换回可读的源代码,这对于软件开发者、逆向工程师以及学习Java的人来说是非常有用的。在进行Java应用的调试、分析或者研究时,jad.exe 提供了...

    java调用cmd创建目录和复制文件

    下面将详细解释如何使用Java调用CMD来创建目录和复制文件。 首先,我们需要了解CMD中的命令。在Windows CMD中,我们可以使用`mkdir`命令创建目录,`copy`命令复制文件。例如,创建一个名为“我的文件夹”的目录,...

    java javascript 调用命令行 cmd

    **Java调用命令行** 在Java中,我们可以使用`Runtime`类或`ProcessBuilder`类来执行命令行操作。 1. **使用Runtime.exec()** `Runtime.getRuntime().exec(command)` 是最基础的方法,用于执行指定的系统命令。`...

    winutils.exe_hadoop-3.0.0

    `winutils.exe`通常位于Hadoop安装目录的`bin`子目录下,需要将其路径添加到系统环境变量`PATH`中,以便在命令行中随时调用。 `hadoop.dll`是Hadoop在Windows上运行所需的动态链接库文件,它包含了Hadoop的一些核心...

    java调用windows命令

    - 如果要执行DOS内部命令,如`dir`或`copy`,需要在命令前加上命令解释器,如`cmd.exe /c`。例如: ```java Process process = Runtime.getRuntime().exec("cmd.exe /c dir"); ``` - 为了确保程序在不同版本的...

    hadoop-2.9.2 win环境运行资源文件:hadoop.dll, winutils.exe

    由于Windows系统与Linux在文件权限和系统调用上有显著差异,`winutils.exe`是确保Hadoop在Windows上正常工作的关键组件。 3. **在Windows 10上安装和配置Hadoop-2.9.2**: - 首先,你需要下载Hadoop的Windows兼容...

    java执行cmd命令并返回运行结果

    使用方法: (1)导入Command.jar工具包 (2)Command.exeCmd("cmd命令")//该方法返回String

    apk反编译软件 apktool.jar + aapt.exe + APKTool.cmd

    最后,`APKTool.cmd` 可能是一个批处理文件,包含了调用apktool.jar和aapt.exe的命令行指令,以简化反编译流程。用户只需要运行这个CMD文件,然后按照提示操作,就可以自动完成整个反编译过程,无需手动输入复杂的...

    java 调用 windows cmd 命令

    总结,通过Java调用Windows CMD命令,我们可以方便地执行系统级任务,实现与操作系统的交互。`FileProcessInShell.java`可能就是这样一个例子,它演示了如何在Java程序中执行和处理CMD命令的输出。在实际开发中,...

    winutils.exe hadoop.dll

    当`winutils.exe`执行时,会调用`hadoop.dll`中的函数来完成相应的任务。 要在Windows上配置Hadoop,首先需要下载预编译的Hadoop版本,确保其中包含了`winutils.exe`和`hadoop.dll`。然后,将Hadoop解压到本地,并...

Global site tag (gtag.js) - Google Analytics