
正文
java工程调用代码 java调用程序
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何在Java中调用Python代码
Jython(原JPython),是一个用Java语言写的Python解释器。 在没有第三方模块的情况下,通常选择利用Jython来调用Python代码, 它是一个开源的JAR包,你可以到官网下载 一个HelloPython程序 importorg.python.util.PythonInterpreter; publicclassHelloPython{ publicstaticvoidmain(String[]args){ PythonInterpreterinterpreter=newPythonInterpreter(); interpreter.exec("print('hello')"); } } 什么是PythonInterpreter?它的中文意思即是“Python解释器”。我们知道Python程序都是通过解释器来执行的,我们在Java中创建一个“解释器”对象,模拟Python解释器的行为,通过exec("Python语句")直接在JVM中执行Python代码,上面代码的输出结果为:hello在Jvm中执行Python脚本 interpreter.execfile("D:/labs/mytest/hello.py");如上,将exec改为execfile就可以了。需要注意的是,这个.py文件不能含有第三方模块,因为这个“Python脚本”最终还是在JVM环境下执行的,如果有第三方模块将会报错:javaImportError:Nomodulenamedxxx 仅在Java中调用Python编写的函数 先完成一个hello.py代码: defhello(): return'Hello'在Java代码中调用这个函数: importorg.python.core.PyFunction; importorg.python.core.PyObject; importorg.python.util.PythonInterpreter; publicclassHelloPython{ publicstaticvoidmain(String[]args){ PythonInterpreterinterpreter=newPythonInterpreter(); interpreter.execfile("D:/labs/hello.py"); PyFunctionpyFunction=interpreter.get("hello",PyFunction.class);//第一个参数为期望获得的函数(变量)的名字,第二个参数为期望返回的对象类型 PyObjectpyObject=pyFunction.__call__();//调用函数 System.out.println(pyObject); } } 上面的代码执行结果为:Hello 即便只是调用一个函数,也必须先加载这个.py文件,之后再通过Jython包中所定义的类获取、调用这个函数。 如果函数需要参数,在Java中必须先将参数转化为对应的“Python类型”,例如: __call__(newPyInteger(a),newPyInteger(b))a,b的类型为Java中的int型,还有诸如:PyString(Stringstring)、PyList(Iteratoriter)等。 详细可以参考官方的api文档。 包含第三方模块的情况:一个手写识别程序 这是我和舍友合作写的一个小程序,完整代码在这里:,界面上引用了corejava上的一段代码。Python代码是舍友写的,因为在Python程序中使用了第三方的NumPy模块,导致无法通过Jython执行。下面这个方法纯粹是个人思路,没有深入查资料。核心代码如下: importjava.io.*; classPyCaller{ privatestaticfinalStringDATA_SWAP="temp.txt"; privatestaticfinalStringPY_URL=System.getProperty("user.dir")+"\\test.py"; publicstaticvoidwriteImagePath(Stringpath){ PrintWriterpw=null; try{ pw=newPrintWriter(newFileWriter(newFile(DATA_SWAP))); }catch(IOExceptione){ e.printStackTrace(); } pw.print(path); pw.close(); } publicstaticStringreadAnswer(){ BufferedReaderbr; Stringanswer=null; try{ br=newBufferedReader(newFileReader(newFile(DATA_SWAP))); answer=br.readLine(); }catch(FileNotFoundExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); } returnanswer; } publicstaticvoidexecPy(){ Processproc=null; try{ proc=Runtime.getRuntime().exec("python"+PY_URL); proc.waitFor(); }catch(IOExceptione){ e.printStackTrace(); }catch(InterruptedExceptione){ e.printStackTrace(); } } //测试码 publicstaticvoidmain(String[]args)throwsIOException,InterruptedException{ writeImagePath("D:\\labs\\mytest\\test.jpg"); execPy(); System.out.println(readAnswer()); } } 实际上就是通过Java执行一个命令行指令。
相关问答
Q1: Java项目怎样让另一个类中的代码跟这个类里面的代码一起执行
1、在Java项目中新建一个类。然后在调用类中先进行被调用类实例化,然后通过实例化的对象访问。
2、在Java项目中新建一个类,将该类中需要被调用的方法设置为静态(static),加了static后,就可以用类名直接调用。然后在调用类中直接通过类名进行访问。3、这样就可以让Java项目另一个类中的代码跟这个类里面的代码一起执行了。
Q2: java用什么调用js代码
在Java中直接调用js代码
不能调用浏览器中定义的js函数,会抛出异常提示ReferenceError: “alert” is not defined。
在Java中绑定js变量
在调用engine.get(key);时,如果key没有定义,则返回null
Q3: java jsp页面怎么写java类?怎么调用java代码?
jsp中写java代码成为scriptletjava工程调用代码,写在%%之间就可以了。
Scriptlet是包含在%和%之间java工程调用代码的Java代码,在Web容器处理JSP页面时执行,通常会产生输出,并将输出发送到客户java工程调用代码的输出流里。Scriptlet除了不能定义类和方法、不能用import引入类外,可以包含任何有效的Java代码。(Java类在Jsp外部定义,可用page指令的import属性引入,也可以Java Bean的形式使用。Java中的方法必须在类内定义,但Jsp允许使用声明定义方法。窗体(GUI)设计代码在Jsp中无效)。
Scriptlet例程java工程调用代码:
%@ page contentType="text/html; charset=gb2312" %
html
head
titleJSP基本语法/title
/head
body
h1Scriptlet示例页面/h1
table border="1"
caption乘法口诀表/caption
%-- 在网页中嵌入Java代码的主要方法 --%
%
for(int i=1; i=9; i++) {
int j=1;
//out是JSP的一个内部对象,print方法用于向客户端输出数据
out.println("tr");
for(; j=i; j++) {
out.print("td" + j + "*" + i + "=" + j*i + "/td");
}
for(;j=9;j++) {
out.print("td /td");
}
out.println("/tr");
}
%
/table
/body
/html
Q4: Java语言里面如何调用函数,请给出一段调用函数的代码?
public class HelloWord{
//自定义的输出函数,打印字符串helloword!
public void printHelloWord() {
System.out.println("helloword!");
}
public static void main(String args[]){
//创建对象实例
HelloWord hw = new HelloWord();
//通过对象实例调用自己的成员函数
hw.printHelloWord() ;
}
}
你看看满意不?
Q5: Java如何调用C语言代码 ?
需要JNI(Java Native Interface)技术即,本地调用接口。
可以将C、C++、VB等其他编程语言编制的程序代码封装成对用户不可见的底层class。
而在java程序中仅声明其方法名和参数表以及返回值即可。
大致的操作过程请百度 JNI 选择第一个搜索结果即可找到。
关于java工程调用代码和java调用程序的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






