包含jythonjava的词条

博主:adminadmin 2022-11-30 10:25:08 56

今天给各位分享jythonjava的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何在Java项目中嵌入Jython代码

Hello World!——它在Jython中如下所示:

清单1. Jython的Hello World!

print"HelloWorld!"

在Jython中(就像在Python中),源文件使用扩展名“py”。“Hello World”语句放在hello.py之类的源文件中时,就是一个完整的程序。

作为比较,看一下等效的Java程序,看看下面的hello.java文件:

清单2.Java的Hello World!

publicclasshello{

publicstaticvoidmain(String[]args){

System.out.println("HelloWorld!");}}

Jython的格式显然更简单,通常都是如此。Jython好的方面当然是代码可以直接解释,也可以翻译成Java源代码并自动编译为类文件。可以用下面的Java命令来运行Hello World程序:C:\java-Dpython.home=C:\jython-2.1-cpC:\jython-2.1\jython.jar

org.python.util.jythonhello.py

也可以用下面更方便的Jython脚本运行这个程序:C:\

jythonhello.py

Python真是编程者的福利,Python和Java可以结合吗?

python语言现在至少有3种实现:

1.

用c实现的,叫cython(也是现在普遍使用的一种实现)。

2.

用java实现的,叫jython,可以直接访问java类库,生成字节码文件。所以,用jython的话,是完全可以与java结合使用的。

3.

用c#实现的,叫ironpython,可以直接访问.Net类库中的类,生成的是IL(中间语言)字节码文件。可以与所有.Net语言(c#、vb.net等)结合使用。

jython怎样导入一个java库

importjava.io.*;这个叫导入IO包。类似的格式。主要是使用关键字import,然后就是文件的路径。或者说是,类的路径。因为一个包里有很多的类,所以会像我写的那样,IO.*;这样子。这些类都是存在于IO包里的。建议可以学一学怎么制作包,这样会更加有助于理解。

请问如何将Jython类型转换为Java类型

要将 Jython类型转换为 Java类型(以及相反),使用下面例子中的函数:def mapMapFromJava (map): """ Convert a Map to a Dictionary. """ result = {} iter = map.keySet().iterator() while iter.hasNext(): key = iter.next() result[mapFromJava(key)] = mapFromJava(map.get(key)) return result def mapCollectionFromJava (coll): """ Convert a Collection to a List. """ result = [] iter = coll.iterator(); while iter.hasNext(): result.append(mapFromJava(iter.next())) return result def mapFromJava (object): """ Convert a Java type to a Jython type. """ if object is None: return object if isinstance(object, util.Map): result = mapMapFromJava(object) elif isinstance(object, util.Collection): result = mapCollectionFromJava(object) else: result = object return result def mapSeqToJava (seq): """ Convert a sequence to a Java ArrayList. """ result = util.ArrayList(len(seq)) for e in seq: result.add(mapToJava(e)); return result def mapDictToJava (dict): """ Convert a Dictionary to a Java HashMap. """ result = util.HashMap() for key, value in dict.items(): result.put(mapToJava(key), mapToJava(value)) return result def mapToJava (object): """ 将Jython类型转换为Java类型 """ if object is None: return object t = type(object) if t == TupleType or t == ListType: result = mapSeqToJava(object) elif t == DictType: result = mapDictToJava(object) else: result = object return result 在使用了 mapToJava 后,这些类型可以写为java.io.ObjectOutputStream。从 java.io.ObjectInputStream 读出一个对象后,可以用 mapFromJava 将对象转换回 Jython 类型。注意这些方法支持有限的、但是广泛使用的一组内置 Jython类型。Jython 自动转换类似值的类型,如数字和字符串。不支持用户定义的类。映射Java类型继续这个例子,下面显示了继续使用上一屏讨论的映射函数的情况:data = (1,2,3, [1,2,3], [c for c in "Hello!"], "Hello!", {1:'one', 2:'two'}) print "data:", data toJava = mapToJava(data) print "toJava:", toJava fromJava = mapFromJava(toJava) print "fromJava:", fromJava print print "type(%s)=%s" % ("data", type(data)) print "type(%s)=%s" % ("toJava", type(toJava)) print "type(%s)=%s" % ("fromJava", type(fromJava)) 打印:data: (1, 2, 3, [1, 2, 3], ['H', 'e', 'l', 'l', 'o', '!'], 'Hello!', \ {2: 'two', 1: 'one'}) toJava: [1, 2, 3, [1, 2, 3], [H, e, l, l, o, !], Hello!, {2=two, 1=one}] fromJava: [1, 2, 3, [1, 2, 3], ['H', 'e', 'l', 'l', 'o', '!'], 'Hello!', \ {2: 'two', 1: 'one'}] type(data)=org.python.core.PyTuple type(toJava)=org.python.core.PyJavaInstance type(fromJava)=org.python.core.PyList 注意PyTuple变成了 PyJavaInstance,然后是 PyList.还要注意 toJava 表单的格式不一样了。这是因为它是一个 Java 对象,并且它是由 Java toString() 方法而不是 Jython repr()函数打印的。Jython 将 PyJavaInstance 这种类型原样传递给 Java API。 最后,注意 data 和 fromJava 值是相同的,只不过元组现在是一个相应的列表。

如何用java 执行jython

参考下面方法:

1.直接执行Python脚本代码

引用 org.python包

1 PythonInterpreter interpreter = new PythonInterpreter();

2 interpreter.exec("days=('mod','Tue','Wed','Thu','Fri','Sat','Sun'); "); ///执行python脚本

2. 执行python .py文件

1 PythonInterpreter interpreter = new PythonInterpreter();

2 InputStream filepy = new FileInputStream("D:\\demo.py");

3 interpreter.execfile(filepy); ///执行python py文件

4 filepy.close();

3. 使用Runtime.getRuntime()执行脚本文件

这种方式和.net下面调用cmd执行命令的方式类似。如果执行的python脚本有引用第三方包的,建议使用此种方式。使用上面两种方式会报错java ImportError: No module named arcpy。

1 Process proc = Runtime.getRuntime().exec("python D:\\demo.py");

2 proc.waitFor();

jython中怎么java怎么调用python的主函数

args, 为可选参数,会被 JPype 直接传递给 JVM 作为 Java 虚拟机的启动参数。此处适合所有合法的 JVM 启动参数,例如:

-agentlib:libname[=options]

-classpath classpath

-verbose

-Xint

关于jythonjava和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-30,除非注明,否则均为首码项目网原创文章,转载请注明出处。