SyJava

scyjava的Python项目详细描述


SCYJava

来自python的超级java访问。

建立在pyjniusjgo之上。

使用python中的java类

>>>importscyjava,jnius>>>System=jnius.autoclass('java.lang.System')>>>System.getProperty('java.version')'1.8.0_152-release'

有关从python调用java的更多信息,请参见Pyjnius documentation

使用远程存储库中的maven工件

来自Maven Central

>>>importsys;sys.version_infosys.version_info(major=3,minor=6,micro=5,releaselevel='final',serial=0)>>>importscyjava_config>>>scyjava_config.add_endpoints('org.python:jython-standalone:2.7.1')>>>importscyjava,jnius>>>jython=jnius.autoclass('org.python.util.jython')>>>jython.main([])Jython2.7.1(default:0df7adb1b397,Jun302017,19:02:43)[OpenJDK64-BitServerVM(JetBrainss.r.o)]onjava1.8.0_152-releaseType"help","copyright","credits"or"license"formoreinformation.>>>importsys;sys.version_infosys.version_info(major=2,minor=7,micro=1,releaselevel='final',serial=0)

来自其他maven存储库

>>>importscyjava_config>>>scyjava_config.add_repositories({'imagej.public':'https://maven.imagej.net/content/groups/public'})>>>scyjava_config.add_endpoints('net.imagej:imagej:2.0.0-rc-65')>>>importscyjava,jnius>>>System=jnius.autoclass('java.lang.System')>>>System.setProperty('java.awt.headless','true')>>>ImageJ=jnius.autoclass('net.imagej.ImageJ')>>>ij=ImageJ()>>>formula="10 * (Math.cos(0.3*p[0]) + Math.sin(0.3*p[1]))">>>blank=ij.op().create().img([64,16])>>>sinusoid=ij.op().image().equation(blank,formula)>>>print(ij.op().image().ascii(sinusoid)),,,--+oo******oo+--,,,,,--+oo******o++--,,,,,--+oo******o++--,,,...,--+ooo**oo++--,....,,--+ooo**oo++-,,....,,--+ooo**oo++-,,......,--++oooo++--,......,--++oooo++--,......,--++oooo++-,,.....,--++++++--,....,--++o+++--,...,,--++o+++--,....,,-++++++-,,...,,-++++++-,,...,--++++++-,,..,,--++++--,,..,,--++++--,,..,,--++++--,...,,--++++--,,..,,-+++++--,,..,,-+++++--,,...,--++++++--,....,--++++++--,....,--++++++-,,....,,-++oooo++-,,....,,-++oooo++-,,....,,-++ooo+++-,,.....,,-++oooooo++-,,.....,,-++oooooo++-,,.....,,-++oooooo+--,,....,,,-++oo****oo++-,,,.,,,-++oo****oo+--,,,.,,,-++oo****oo+--,,,.,,--++o***OO**oo++-,,,,--++o***OO**oo+--,,,,--++o***OO**oo+--,,,---++o**OOOOOO**o++-----++o**OOOOOO*oo++-----++o**OOOOOO*oo++-----++oo*OO####OO*oo++---++oo*OO####OO*oo++---++o**OO####OO*oo++--+++oo*OO######O**oo+++++oo*OO######O**oo+++++oo*OO######O**oo++++++oo*OO######OO*oo+++++oo*OO######OO*oo+++++oo*OO######OO*oo+++

有关maven端点的更多信息,请参阅jgo documentation文档。

在python和java数据结构之间转换

将java集合转换为python

>>>importscyjava,jnius>>>System=jnius.autoclass('java.lang.System')>>>props=System.getProperties()>>>props<java.util.Propertiesat0x10dc2daf0jclass=java/util/Propertiesjself=<LocalRefobj=0x7fcfefd34b20at0x10dc371f0>>>>>[kforkinprops]Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:'java.util.Properties'objectisnotiterable>>>[kforkinscyjava.to_python(props)ifk.startswith('java.vm.')]['java.vm.version','java.vm.vendor','java.vm.name','java.vm.specification.name','java.vm.specification.vendor','java.vm.specification.version','java.vm.info']

将python集合转换为java

>>>squares=[n**2forninrange(1,10)]>>>squares[1,4,9,16,25,36,49,64,81]>>>squares.stream()Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>AttributeError:'list'objecthasnoattribute'stream'>>>scyjava.to_java(squares).stream()<java.util.stream.Streamat0x119d8ba40jclass=java/util/stream/Streamjself=<LocalRefobj=0x7fcfefd34810at0x10dc37810>>

内省Java类

>>>importscyjava>>>NumberClass=scyjava.jclass('java.lang.Number')>>>NumberClass<Classat0x10dca89e8jclass=java/lang/Classjself=<LocalRefobj=0x7fcfefd33420at0x10dc37a30>>>>>NumberClass.getName()'java.lang.Number'>>>NumberClass.isInstance(scyjava.to_java(5))True>>>NumberClass.isInstance(scyjava.to_java('Hello'))False

可用功能

>>> import scyjava
>>> help(scyjava.convert)
...
FUNCTIONS
    isjava(data)
        Return whether the given data object is a Java object.

    jclass(data)
        Obtain a Java class object.

        :param data: The object from which to glean the class.
        Supported types include:
        A. Name of a class to look up, analogous to
        Class.forName("java.lang.String");
        B. A jnius.MetaJavaClass object e.g. from jnius.autoclass, analogous to
        String.class;
        C. A jnius.JavaClass object e.g. instantiated from a jnius.MetaJavaClass,
        analogous to "Hello".getClass().
        :returns: A java.lang.Class object, suitable for use with reflection.
        :raises TypeError: if the argument is not one of the aforementioned types.

    to_java(data)
        Recursively convert a Python object to a Java object.
        :param data: The Python object to convert.
        Supported types include:
        * str -> String
        * bool -> Boolean
        * int -> Integer, Long or BigInteger as appropriate
        * float -> Float, Double or BigDecimal as appropriate
        * dict -> LinkedHashMap
        * set -> LinkedHashSet
        * list -> ArrayList
        :returns: A corresponding Java object with the same contents.
        :raises TypeError: if the argument is not one of the aforementioned types.

    to_python(data)
        Recursively convert a Java object to a Python object.
        :param data: The Java object to convert.
        Supported types include:
        * String, Character -> str
        * Boolean -> bool
        * Byte, Short, Integer, Long, BigInteger -> int
        * Float, Double, BigDecimal -> float
        * Map -> collections.MutableMapping (dict-like)
        * Set -> collections.MutableSet (set-like)
        * List -> collections.MutableSequence (list-like)
        * Collection -> collections.Collection
        * Iterable -> collections.Iterable
        * Iterator -> collections.Iterator
        :returns: A corresponding Python object with the same contents.
        :raises TypeError: if the argument is not one of the aforementioned types.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OnResizeListener或OnDrawListener或类似的东西   java Orika映射嵌套子列表   保存时java Heroku请求超时代码H12   数据库在Java中出现socket读取超时异常的原因是什么?   java如何更改来自Sqlite数据库的特定数据在Listview中的行颜色   java JAXB解组器无法正确处理XML中的列表   java Android日期时区让我抓狂   java不透明属性在Swing中如何工作?   eclipse从JavaEE代码生成流程图   java如何在Hibernate中从相关表中获取计数   java Glassfish部署了项目的依赖项库   java使内容适合JavaFx中的WebView   java不满意的链接错误libcrypto。所以1.0.0   循环中java数组的使用   java找出哪个包调用服务