标签: exec

我们的Java程序的外部程序

如何用Java编写将执行另一个程序的程序?此外,该程序的输入应该从我们的程序中提供,该程序的输出应该写入文件.

这是我获取输出的一小部分代码:

Process p = Runtime.getRuntime().exec("C:\\j2sdk1.4.0\bin\\helloworld.java");
BufferedReader input =
        new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) 
  System.out.println(line);

input.close();
Run Code Online (Sandbox Code Playgroud)

这是我的一组代码,但这会抛出一个IOException.

java process exec

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

TSQL使EXECUTE语句同步

我有两个TSQL EXEC语句

EXECUTE (N'MyDynamicallyGeneratedStoredProcedure') -- return 0 on success
SELECT @errCode = @@ERROR ;

IF (@errCode = 0)
BEGIN
  EXEC 'A Sql Statement using ##temptable created from first', @returnValue
END
Run Code Online (Sandbox Code Playgroud)

如何使两个EXEC同步?; 现在第二个EXEC不等待第一个EXECUTE完成.我尝试发出WaitFor Delay,它等待,但第二个EXEC语句永远不会退回.

谢谢.

更新,这里有更多信息:

  1. 首先执行创建全局临时表,并从复杂的SELECT查询中填充它.
  2. 第二个EXEC是一个CLR存储过程,它根据最近创建和填充的Global Temp表中的变量生成动态SP.

现在第二个EXEC,抱怨没有找到Global Temp表.

更新2,发现问题(和它我!)

GBN(和其他人)在答案上都是空白.EXEC是同步的.问题?我对问题本身的理解..我曾经提到过

  1. EXECUTE(N'MyDynamicallyGeneratedStoredProcedure') - 成功返回0

应该是:

1(a)EXECUTE(N'CreateMyDynamicStoredProcedure') - 成功时返回0

1(b)EXECUTE(N'MyDynamicStoredProcedure') - 成功返回0

我错过了1(b)实际上在其他地方执行并且在步骤(2)之后执行.

(我应该去过生活!)

sql t-sql sql-server exec synchronous

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

如何使用Ant exec任务执行Perl脚本?

我目前在我的Ant构建脚本中有这个:

<exec dir="${basedir}" executable="perl">
    <arg line="${basedir}/version.pl -major"/>
</exec>
Run Code Online (Sandbox Code Playgroud)

但是,当它运行时,我收到此错误消息:

[exec]无法打开-major
[exec]结果:2

对我来说,我说我所拥有的是试图运行一个名为-major的文件,该文件不存在.该文件是version.pl,它带有-major参数.

如何更改此操作以使用参数-major运行version.pl?

请注意,我在Solaris计算机上运行ant脚本,但是对于后代,欢迎跨平台或其他操作系统的解决方案.

ant perl exec

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

从没有exec的文件中读取列表和dicts

目前我有这个代码,它从包含类似内容的文件中读取[{'1': {'Score': '2', 'Class': '3'}}]并将其分配给变量:

exec('assigns = ' + open(r'D:\Dropbox\Dev\Output\dict', 'r').read())
Run Code Online (Sandbox Code Playgroud)

但是,我被告知使用exec是危险的.如何在不使用的情况下编写相同的代码exec?

python io unsafe exec

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

Ant:没有这样的文件或目录

我需要编写ant脚本来在linux中执行一个文件,但在执行文件之前我需要执行setup文件.

在putty我习惯了类似"./setup"然后"./executeme"的东西

以同样的方式我写了蚂蚁脚本作为

    <exec dir="${dir}" executable="/bin/sh">
        <arg value=". ./setup"/>
        <arg value="./executeme"/>
    </exec>
Run Code Online (Sandbox Code Playgroud)

但它给出错误为"/ bin/sh:../ setup:没有这样的文件或目录".

还有人可以解释我执行"./setup"和"./setup"之间的区别吗?

提前致谢.

java linux ant exec

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

可执行文件sed

想要使用ant替换macOS上txt文件中的值。我使用了以下代码,但出现错误:“该类型不支持嵌套文本数据(“”)“。

<exec executable="sed">
   <arg value="s/old/new/g" />
   <arg value="$MY_FILE" />
 </exec>.
Run Code Online (Sandbox Code Playgroud)

如何替换变量的值,我在Windows上用replace替换了文件,就可以了。

ant sed exec

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

像"ls -l"这样的命令不在execl中执行,而在execvp中它可以工作

在execl变体中使用下面的代码ls,但是ls -l不起作用,但是在我的execvp方法ls和ls-l工作中.我采用这种execl方法的原因是因为二进制文件的路径可能不同而execvp没有提供给我这个功能.理想情况下,我execl也想继续努力ls -l,但现在它不起作用ls -l.我试过阅读手册页,但没有帮助.

void child(int argc, char *argv[MAX_ARGS])
{
        execvp(argv[0], argv);
}


void child(char *argv[], char* path)
{
        execl(path, argv, NULL);
}
Run Code Online (Sandbox Code Playgroud)

c exec

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

execvp - ls:fts_open:没有这样的文件或目录

我目前正在努力解决这个错误.我正在编写一个shell模拟器,使用fork()来执行使用execvp();的命令.几乎我尝试解析到我的shell的每个命令都工作得很好,除了没有参数的ls.如果我尝试执行ls -lah,一切正常,但是一个简单的ls不会,收到以下错误:

ls: fts_open: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这是我的代码片段:(只是必不可少的)

pid = fork();
      if (pid==0)
      {
        puts("CHILD");
        puts(args[0]);
        puts(args[1]);
        printf("%d\n", strlen(args[1]));
        args[2] = NULL;
        execvp(args[0], args);
      }
      else wait(NULL);
      puts("BACK TO PARENT");
    }
Run Code Online (Sandbox Code Playgroud)

这是ls的输出:

ls
CHILD
ls

0
ls: fts_open: No such file or directory
BACK TO PARENT
Run Code Online (Sandbox Code Playgroud)

如你所见,args [0]包含ls,args [1]为空,因为没有参数,args [1]的长度为0,但我不断收到错误.

有什么想法吗?

编辑:

感谢Jonathan Leffler找到它:(同样,它似乎只是Mac上的一个问题)

关键是args [1]实际上并不是空的,因此,操作系统会尝试打开''文件,显然,该文件不存在,并且看起来不能创建,因为它不是真是个名字.

所以,这就是我所做的:检查args的len [1].如果为0,则将其设置为NULL.(只是释放内存并没有真正帮助)

pid = fork();
      if (pid==0)
      {
        puts("CHILD");
        puts(args[0]);
        puts(args[1]);
        if (strlen(args[1]) == 0)
            args[1] = 0;
        args[2] = NULL;
        execvp(args[0], …
Run Code Online (Sandbox Code Playgroud)

c fork exec execvp

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

Go:运行外部Python脚本

我试过跟随Go Docs来调用一个只从GO输出"Hello"的python脚本,但直到现在才失败.

exec.Command("script.py")
Run Code Online (Sandbox Code Playgroud)

或者我也试过调用一个简单调用python脚本的shell脚本,但也失败了:

exec.Command("job.sh")
Run Code Online (Sandbox Code Playgroud)

任何想法我将如何实现这一目标?

编辑

我按照评论中的建议解决了问题,并添加了exec.Command()的完整路径.

exec go

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

在Ruby循环中运行几个“ exec”

我正在扫描文件夹中的音频文件,并将它们转换为mp3。在RUBY中效果很好。但是,完成第一个转码后,它将停止整个循环

这是我的代码处理的分解。

def scanFolder
  # lots of code above to get folder list, check for incorrect files etc..
  audioFileList.each {
    |getFile|

    exec_command = "ffmpeg #{getFile} #{newFileName}"
    exec exec_command
  }
end
Run Code Online (Sandbox Code Playgroud)

发生的事情是,它将对找到的第一个文件进行代码转换,然后停止整个功能。有办法强迫它继续吗?

ffmpeg目前确实可以正常运行并完成,因此它没有破坏任何内容

ruby ffmpeg exec

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

标签 统计

exec ×10

ant ×3

c ×2

java ×2

execvp ×1

ffmpeg ×1

fork ×1

go ×1

io ×1

linux ×1

perl ×1

process ×1

python ×1

ruby ×1

sed ×1

sql ×1

sql-server ×1

synchronous ×1

t-sql ×1

unsafe ×1