标签: exec

Java Runtime exec()无法正确转义字符

这可能已经在之前得到了回答,但那是关于unicode的,我不认为这是unicode(它是ASCII,所以......).

当我在终端中执行此操作时,没有任何问题

vboxmanage setextradata "Test Machine" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
Run Code Online (Sandbox Code Playgroud)

但是当我在Java中使用以下内容时

Runtime.getRuntime().exec("vboxmanage setextradata \"Test Machine\" \"VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort\" 2222");
Run Code Online (Sandbox Code Playgroud)

它返回一个错误:unregistered vm'"TestMachine"'

对于像Test\Machine这样的带有空格的参数也是如此,那么它就不会逃避空间.

现在我认为这与字符编码有关,但我没有看到任何设置o_O的选项

java escaping exec runtime.exec character-encoding

13
推荐指数
4
解决办法
1万
查看次数

Gradle:任务的标准输出同时到文件和终端

我想将standardOutput一个构建任务更改为文件,因为稍后将由另一个任务解析.

而且,我想在终端中同时输出以查看构建中发生了什么.

这是我将任务的输出更改为文件的方式:

task sampleTaskWithOutputToFile(type: Exec) {
    commandLine 'someCommand', 'param1'

    doFirst {
        standardOutput = new FileOutputStream('someFolder/someFile.out')
    }
} 
Run Code Online (Sandbox Code Playgroud)

据我了解,我可以写自己OutputStream的实现与输出到文件和标准的System.out同时,但我想用现有的解决方案.

此外,我不能使用像这样的unix工具tee,因为任务可以从任何操作系统(Mac OS,某些Linux甚至Windows ......)启动

谢谢!

exec gradle output

13
推荐指数
1
解决办法
6586
查看次数

OCI 运行时执行失败:执行失败:container_linux.go:349:启动容器进程导致“执行:

我已经使用我们的应用程序创建了映像,运行该映像后,我可以看到 docker 容器也已创建,当我尝试进入 docker 容器时,我收到以下错误,您可以在这里帮助我吗?

“”“”OCI运行时执行失败:执行失败:container_linux.go:349:启动容器进程导致“执行:”bash“:在$ PATH中找不到可执行文件”:未知“”“”

我尝试执行以下所有命令

 docker run -it exec 962f5d99458c
 docker run -it 962f5d99458c
 docker exec -it 962f5d99458c /bin
 docker exec -it 75f6cb44f9e1
 docker run --rm -ti 962f5d99458c sh
 docker run --rm -ti 962f5d99458c /bin
 docker exec  --rm -ti 962f5d99458c /bin
 docker exec  -ti 962f5d99458c /bin
 docker exec  -ti 962f5d99458c \bin
 docker exec -it 75f6cb44f9e1 bash
Run Code Online (Sandbox Code Playgroud)

但运气不好......你能在这里帮助我吗?

containers image exec docker

13
推荐指数
1
解决办法
2万
查看次数

在bash中将文本附加到stderr重定向

现在我正在使用exec将stderr重定向到错误日志

exec 2>> ${errorLog}
Run Code Online (Sandbox Code Playgroud)

唯一的缺点是我必须以时间戳开始每次运行,因为exec只是将文本直接推送到日志文件中.有没有办法重定向stderr但允许我附加文本,如时间戳?

bash exec stderr

12
推荐指数
1
解决办法
7920
查看次数

我可以在exe中包含dll(在Visual Studio中)吗?

可能重复:
.NET Windows应用程序,它可以压缩成单个.exe吗?

要运行我需要的应用程序AxInterop.WMPLib.dll,Interop.WMPLib.dll它位于Debug和Release文件夹中.有没有办法将这些dll包含在exe中,所以我的应用程序只能在一个文件中使用?

dll release exec include visual-studio

12
推荐指数
1
解决办法
3万
查看次数

何时使用system()以及何时使用execv*()?

我需要在循环中执行带有不同args的unix命令.现在我想知道我是否应该使用execvp(),传入cmd和args,或使用系统,构建一个由cmd + args组成的字符串?

c unix exec

12
推荐指数
3
解决办法
3253
查看次数

exec总是返回-1(或127)

我在生产服务器上使用php 5.2.9,似乎exec()函数表现为"非标准".

如果我运行,exec("ls", $output, $return_var)那么$output将按预期包含当前文件夹中的文件列表,但$return_var将按预期设置为-1而不是0.我正在使用它$return_var来确定命令在哪里成功完成,并在测试的每个其他服务器上按预期工作:)

有没有人遇到过这样的情况?


编辑:

<?php
$command = "asd";

$t1 = time();

$output = Array();
$result = -5;
$r = exec($command, $output, $result);
$t2 = time();

echo "<pre>";
var_export(Array(
    'command'=>$command,
    'result'=>$result,
    'output'=>implode("\n", $output),
    'r'=>$r,
    't2-t1'=>$t2-$t1,
));
echo "</pre>";
Run Code Online (Sandbox Code Playgroud)

无论我输入什么命令$command,$result总是-1,即使对于不存在的命令......这很奇怪

php linux exec

12
推荐指数
1
解决办法
5700
查看次数

了解执行和设置环境变量的要求

我们在解释老师方面遇到了很多麻烦.我们要求澄清并从他那里得到以下回复

  1. 对于execve,使用导出的变量向它发送一个环境,并创建一个内置命令来生成/ bin/bash的子shell,这样就可以使用env查看导出的变量.

    (他在谈论在这里创建我们自己的环境变量.)

  2. 是创建自己的.您可以在shell启动时复制environ并仅添加导出的变量

这与我在Stack Overflow上的以下帖子有关(阅读这篇文章将帮助您理解我想要做的事情):

使用execve的新路径来运行ls命令

我们对此非常困惑.我将再次解释我们现在要做的事情.与你的Linux shell如何做到这一点,我们需要编写自己的程序,可以设置环境变量,如PATH和USER以及用户想要定义的其他任何变量.

你将如何调用它的一个例子是(在你的程序中提示):

mysetenv dog spike
Run Code Online (Sandbox Code Playgroud)

这将创建一个看起来像"dog = spike"的环境变量

更重要的是,我们需要能够设置自己的PATH变量并将其发送到exec命令.这是一个令人困惑的部分,因为基于我们所有的问题,我们不明白我们应该做什么.

c path exec execve

12
推荐指数
2
解决办法
6万
查看次数

是否存在在Common Lisp中运行外部程序的标准方法?

在clisp中,以下代码有效:

(defun hit-history () (shell "tail ssqHitNum.txt"))
Run Code Online (Sandbox Code Playgroud)

但是,在Clozure CL中,shell不支持该功能!

shell common-lisp exec ccl

12
推荐指数
2
解决办法
4938
查看次数

在exec之前编译Mvn

我正在尝试设置我的POM,这样当我这样做mvn exec:exec或者mvn exec:java它将首先编译源并且iff成功时,执行它.

我有以下内容,并试图移动<execution>部分,但无法让它工作:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
            </configuration>
            <executions>
                <execution>
                    <phase>exec</phase>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.2.1</version>
            <configuration>
                <mainClass>my.main.class</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

当我做任何一个mvn exec:exec ...mvn exec:java它没有先编译.我已经尝试将该<execution>部分放入exec插件部分,但这也不起作用?

compilation exec phase maven

12
推荐指数
1
解决办法
4164
查看次数