首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java和wmctrl调整窗口大小

java和wmctrl调整窗口大小
EN

Stack Overflow用户
提问于 2017-06-10 17:14:22
回答 1查看 253关注 0票数 1

我正在编写一个库来覆盖WMctrl shell程序。我在调整窗口大小方面有问题:

代码语言:javascript
复制
String command = "wmctrl -r \"Calculator\" -e 0,100,100,500,500";

System.out.println(command);
String output = this.bashCommandExecutor.execute(command);
System.out.println(output);

这不起作用-输出变量为空。但是当我将wmctrl -r“计算器”-e 0,100,100,500,500复制粘贴到终端时,它正常工作。

其他命令如"wmctrl -d“和"wmctrl -l”在this.bashCommandExecutor.execute()方法中工作。

此方法如下所示:

代码语言:javascript
复制
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BashCommandExecutor
{
    String execute(String bashCommand)
    {
        Process p = null;
        try {
            p = Runtime.getRuntime().exec(bashCommand);
            p.waitFor();
        }
        catch (InterruptedException | IOException e) {
            e.printStackTrace();
        }

        BufferedReader reader = new BufferedReader(
            new InputStreamReader(p.getInputStream())
        );

        String line = "";
        StringBuilder sb = new StringBuilder();
        try {
            while ((line = reader.readLine())!= null) {
                sb.append(line + "\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        return sb.toString();
    }
}

为什么调整大小在命令行中有效,而在Java应用程序中却不起作用?

EN

回答 1

Stack Overflow用户

发布于 2021-10-07 21:19:59

我发现使用ProcessBuilder类而不是Runtime.exec()可以运行您描述的wmctrl命令。因此,与其:

代码语言:javascript
复制
String bashCommand = "wmctrl -r \"Calculator\" -e 0,100,100,500,500";
Process p = Runtime.getRuntime().exec(bashCommand);

你可以试试:

代码语言:javascript
复制
String bashCommand = "wmctrl -r \"Calculator\" -e 0,100,100,500,500";
ProcessBuilder pb = new ProcessBuilder("bash", "-c", bashCommand);
Process p = pb.start();

Here is a link到另一篇文章,解释Runtime.exec()和使用ProcessBuilder之间的区别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44475990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档