标签: exec

在单独的进程中执行Java应用程序

Java应用程序是否可以使用其名称(而不是其位置)以独立于平台的方式加载到单独的进程中?

我知道你可以通过...执行一个程序

Process process = Runtime.getRuntime().exec( COMMAND );
Run Code Online (Sandbox Code Playgroud)

...这种方法的主要问题是这种调用是特定于平台的.


理想情况下,我将方法包装成简单的方法......

EXECUTE.application( CLASS_TO_BE_EXECUTED );
Run Code Online (Sandbox Code Playgroud)

...并传入应用程序类的完全限定名称CLASS_TO_BE_EXECUTED.

java process exec

43
推荐指数
4
解决办法
6万
查看次数

如何从Kotlin代码中调用外部命令?

我想从Kotlin代码调用外部命令.在C/Perl中,我会使用system()函数; 在Python中,我会使用子进程模块; 在Go中,我会使用os/exec; 等等.但是,我怎么在Kotlin这样做呢?

exec kotlin

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

Python中的动态/运行时方法创建(代码生成)

我需要在运行时为方法生成代码.能够运行任意代码并拥有文档字符串非常重要.

我想出了一个解决方案相结合exec,并setattr,这里是一个虚拟的例子:

class Viking(object):
    def __init__(self):
        code = '''
            def dynamo(self, arg):
                """ dynamo's a dynamic method!
                """
                self.weight += 1
                return arg * self.weight
            '''
        self.weight = 50

        d = {}
        exec code.strip() in d
        setattr(self.__class__, 'dynamo', d['dynamo'])


if __name__ == "__main__":
    v = Viking()
    print v.dynamo(10)
    print v.dynamo(10)
    print v.dynamo.__doc__
Run Code Online (Sandbox Code Playgroud)

是否有更好/更安全/更惯用的方式来实现相同的结果?

python metaprogramming exec

42
推荐指数
3
解决办法
4万
查看次数

你如何从PHP运行.bat文件?

谁能告诉我如何从PHP脚本执行.bat文件?

我试过了:

exec("C:\[path to file]");
system("C:\[path to file]");
Run Code Online (Sandbox Code Playgroud)

什么都行不通.我检查了PHP手册并用Google搜索,但找不到一个好的答案.谁知道我哪里出错了?

我正在运行Windows 2003 Server并成功手动运行.bat文件,它完成了我需要的操作; 我只需要能够以编程方式启动它.

php system batch-file exec

42
推荐指数
4
解决办法
11万
查看次数

如何在多处理器系统上生成并行子进程?

我有一个Python脚本,我想用作另一个Python脚本的控制器.我有一个64位处理器的服务器,所以想要产生第二个Python脚本的64个子进程.子脚本被调用:

$ python create_graphs.py --name=NAME
Run Code Online (Sandbox Code Playgroud)

其中NAME是XYZ,ABC,NYU等.

在我的父控制器脚本中,我从列表中检索名称变量:

my_list = [ 'XYZ', 'ABC', 'NYU' ]
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,作为孩子产生这些过程的最佳方法是什么?我想一次将子项数限制为64,因此需要跟踪状态(如果子进程已完成或未完成),这样我就可以有效地保持整个代的运行.

我查看了使用子进程包,但拒绝它,因为它一次只生成一个子进程.我终于找到了多处理器包,但我承认被整个线程与子进程文档所淹没.

现在,我的脚本subprocess.call一次只生成一个孩子,看起来像这样:

#!/path/to/python
import subprocess, multiprocessing, Queue
from multiprocessing import Process

my_list = [ 'XYZ', 'ABC', 'NYU' ]

if __name__ == '__main__':
    processors = multiprocessing.cpu_count()

    for i in range(len(my_list)):
        if( i < processors ):
             cmd = ["python", "/path/to/create_graphs.py", "--name="+ my_list[i]]
             child = subprocess.call( cmd, shell=False )
Run Code Online (Sandbox Code Playgroud)

我真的希望它一次产生64个孩子.在其他stackoverflow问题中,我看到人们使用Queue,但似乎这会产生性能损失?

python subprocess exec multiprocessing

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

PHP exec - 检查是启用还是禁用

有没有办法检查PHP脚本,如果exec()在服务器上启用或禁用?

php unix linux exec

41
推荐指数
4
解决办法
6万
查看次数

PHP exec()没有在输出中返回错误消息

我试图以XML格式获取svn命令的某些输出.输入有效参数时输出正常.但是,当我输入错误的密码时,输出不会显示错误消息.这是PHP代码:

exec('/usr/bin/svn --username something --password something --non-interactive log -r HEAD --xml --verbose http://a51.unfuddle.com/svn/a51_activecollab/', $output);
Run Code Online (Sandbox Code Playgroud)

这是我在终端输出的输出:

<?xml version="1.0"?>
<log>
svn: OPTIONS of 'http://a51.unfuddle.com/svn/a51_activecollab': authorization failed: Could not authenticate to server: rejected Basic challenge (http://a51.unfuddle.com)
Run Code Online (Sandbox Code Playgroud)

这是我从var_dump的$ output变量得到的输出:

array(2) {
[0]=>
string(21) "<?xml version="1.0"?>"
[1]=>
string(5) "<log>"
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,$ output变量不会返回第三行输出,其中终端也是如此.请帮助我获得与终端相同的输出(我甚至尝试使用shell_exec()或system()方法,但它们返回与exec()相同的输出)如何获得完整输出?先感谢您!

php xml svn exec

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

如何通过Java执行cmd命令

我试图通过Java执行命令行参数.例如:

// Execute command
String command = "cmd /c start cmd.exe";
Process child = Runtime.getRuntime().exec(command);

// Get output stream to write from it
OutputStream out = child.getOutputStream();

out.write("cd C:/ /r/n".getBytes());
out.flush();
out.write("dir /r/n".getBytes());
out.close();
Run Code Online (Sandbox Code Playgroud)

以上打开命令行但不执行cddir.有任何想法吗?我正在运行Windows XP,JRE6.

(我已将我的问题修改为更具体.以下答案有帮助,但不回答我的问题.)

java exec

41
推荐指数
4
解决办法
20万
查看次数

将exec输出重定向到缓冲区或文件

我正在写一个C程序中我fork(),exec()wait().我想把我执行的程序的输出写入文件或缓冲区.

例如,如果我exec ls 我想写入file1 file2 etc缓冲区/文件.我认为没有办法读取标准输出,所以这是否意味着我必须使用管道?这里有一个我无法找到的一般程序吗?

c fork exec

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

Python 2和Python 3中exec函数的行为

下面的代码给出了不同的输出Python2和在Python3:

from sys import version

print(version)

def execute(a, st):
    b = 42
    exec("b = {}\nprint('b:', b)".format(st))
    print(b)
a = 1.
execute(a, "1.E6*a")
Run Code Online (Sandbox Code Playgroud)

Python2 打印:

2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)]
('b:', 1000000.0)
1000000.0
Run Code Online (Sandbox Code Playgroud)

Python3 打印:

3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)]
b: 1000000.0
42
Run Code Online (Sandbox Code Playgroud)

为什么Python2将函数b内部的变量绑定到execute函数字符串中的exec值,Python3而不执行此操作?我怎样才能实现Python2in 的行为Python3?我已经尝试将全局和本地的字典传递给exec函数Python3,但到目前为止还没有任何工作.

---编辑---

在阅读了Martijns的回答后,我进一步分析了这一点 …

python exec python-2.7 python-3.x

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