Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建系统调用以在jsp文件中运行python代码_Java_Python_Jsp_User Interface_Webpage - Fatal编程技术网

Java 创建系统调用以在jsp文件中运行python代码

Java 创建系统调用以在jsp文件中运行python代码,java,python,jsp,user-interface,webpage,Java,Python,Jsp,User Interface,Webpage,我试图做的是创建一个jsp页面来调用我的Python代码。我试图在jsp中将Python代码作为系统函数调用。我创建此页面是为了从另一个jsp页面对此页面进行跨域调用 有人能告诉我如何对Python代码进行系统调用吗? 我运行以下命令在终端中执行Python代码: root@user:/folder # python p111.py 我尝试了以下代码 <HTML> <BODY> Hello! The time is now <script> Proces

我试图做的是创建一个jsp页面来调用我的Python代码。我试图在jsp中将Python代码作为系统函数调用。我创建此页面是为了从另一个jsp页面对此页面进行跨域调用

有人能告诉我如何对Python代码进行系统调用吗? 我运行以下命令在终端中执行Python代码:

root@user:/folder # python p111.py
我尝试了以下代码

<HTML>
<BODY>
Hello!  The time is now 
<script>
Process qq=Runtime.exec(new String[] { "./dsapce/webapps/jspui/p111.py", "p111.py", }, null, new File("./dsapce/webapps/jspui/p111.py"));
qq.waitFor();
</script>
</BODY>
</HTML>
一些不正确的东西。

看看Java,或者如果您需要更高级的东西

但也要看看Jython。它允许您在Java中运行Python代码

避免将业务逻辑放在JSP中;人们普遍不赞成他们做模板。将这样的转发代码放在Servlet中

下面是一个示例,但您必须确保可以找到python。您可能需要在中放置绝对路径,而不仅仅是python:

如果Java不是以根目录运行的,而Python是以根目录运行的,而根目录可能是不应该的,那么这样会更好,但它依赖于操作系统:

Runtime.exec(new String[] { "sudo", "python", "p111.py", }, null, new File("./path/where/p111/lives"));
它们返回一个进程对象。如果要等待Python完成并查看操作是否成功,请执行process.waitFor并检查值。如果要获取输出或提供输入,则需要执行process.getInput/output/ErrorStream


如果此脚本频繁运行并快速完成,而您关心性能,那么这是一个糟糕的模型,因为流程创建非常昂贵。

ProcessBuilder b=newProcessBuilderroot@user:/folder python p111.py;行吗?或Runtime.getRuntime。execroot@user:/folder python p111.py;“行吗?”你好!现在的时间是Process qq=Runtime.execnew String[]{./dsapce/webapps/jspui/p111.py,p111.py,},null,新文件。/dsapce/webapps/jspui/p111.py;qq.waitFor;'这是我的jsp代码,但是python文件没有执行。是Javascript,不是JSP。它在客户端运行,与Java或JSP完全无关。如果您希望在服务器端运行,在客户端加载页面之前,请使用。如果你想要客户端的东西,那就完全不同了。在这里,使用p111.py您真正想做什么?我在Runtime.exec上收到一个错误“文件无法解析为类型”。。。行,是什么原因?
Runtime.exec(new String[] { "sudo", "python", "p111.py", }, null, new File("./path/where/p111/lives"));