jpythonµ÷ÓÃjavaÀàµÄÄ£°å
ʹÓÃJPypeÄ£¿éÈÃPythonµ÷ÓÃJAVAµÄÀà
Python idea! 2009-03-24 19:44 ÔĶÁ267 ÆÀÂÛ0
×ֺţº ´ó´ó ÖÐÖРСС
¿´¿´Àý×Ó¾ÍÖªµÀÀ²£¬ÕæÊÇΪPython£¨²»ÊÇJython£¬¶øÊÇCPython£©ÌṩÁËÇ¿´óÁ¦Á¿£¡
Ê×ÏÈÔÚjavaϽ¨Á¢Ò»¸öÔÙÒ²¼òµ¥²»¹ýµÄ°ü£º
package org.wg3i.test;
class Test {
private String msg;
public Test() {
}
public void speak(String msg) {
System.out.println(msg);
}
public void setString(String s) {
msg = s;
}
public String getString() {
return msg;
}
}
ÔÚPythonÏÂʹÓÃJPypeÄ£¿éÀ´µ÷ÓÃÎÒÃǸոÕÉú³ÉµÄjava°ü£º
import jpype
import os.path
jarpath = os.path.join(os.path.abspath('.'), 'build/jar')
jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.ext.dirs=%s" % jarpath)
Test = jpype.JClass('org.wg3i.test.Test') # È¡µÃ°üorg.wg3i.testÖеÄÀàTest
t = Test() # ´´½¨TestʵÀý
t.speak("This is a test message") # ³¢ÊÔµ÷ÓÃÀàµÄÒ»¸ö·½·¨
t.setString("Hello, World") #¸ø¶¨String
s = t.getString() # »ñÈ¡String
print s
jpype.shutdownJVM()
ÏÂÃæÀ´½éÉÜÏÂÈçºÎµ÷Óðü¶ø²»ÊǾßÌåµÄÒ»¸öÀࣺ
import jpype
import os.path
classpath = os.path.join(os.path.abspath('.'), 'build/classes')
jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.class.path=%s" % classpath)
testPkg = jpype.JPackage('org').wg3i.test # È¡µÃ°ü
Test = testPkg.Test # È¡µÃÀà
t = Test() # ´´½¨TestʵÀý
t.speak("This is a test message") # ³¢ÊÔµ÷ÓÃÀàµÄÒ»¸ö·½·¨
t.setString("Hello, World") &nbs
Ïà¹ØÎĵµ£º
ÔÚJAVAÖУ¬ÓÐÁù¸ö²»Í¬µÄµØ·½¿ÉÒÔ´æ´¢Êý¾Ý£º
1. ¼Ä´æÆ÷£¨register£©¡£ÕâÊÇ×î¿ìµÄ´æ´¢Çø£¬ÒòΪËüλÓÚ²»Í¬ÓÚÆäËû´æ´¢ÇøµÄµØ·½——´¦ÀíÆ÷ÄÚ²¿¡£µ«ÊǼĴæÆ÷µÄÊýÁ¿¼«ÆäÓÐÏÞ£¬ËùÒԼĴæÆ÷ÓɱàÒëÆ÷¸ù¾ÝÐèÇó½øÐзÖÅä¡£Äã²»ÄÜÖ±½Ó¿ØÖÆ £¬Ò²²»ÄÜÔÚ³ÌÐòÖиоõµ½¼Ä´æÆ÷´æÔÚµÄÈκμ£Ïó¡£
2. ¶ÑÕ»£¨stack£©¡£Î»ÓÚͨÓÃRAMÖУ¬µ ......
ÔÚJavaÖУ¬¾ÍÊÇÀàAµ÷ÓÃÀàBÖеÄij¸ö·½·¨b£¬È»ºóÀàBÓÖÔÚij¸öʱºò·´¹ýÀ´µ÷ÓÃÀàAÖеÄij¸ö·½·¨a£¬¶ÔÓÚAÀ´Ëµ£¬Õâ¸öa·½·¨±ã½Ð×ö»Øµ÷·½·¨,µ±È»£¬AÀàºÍBÀà¿ÉÒԺϲ¢ÎªÒ»¸ö¡£
pubilc interface CallBack{
public void callbackMethod();
}
public class A implements CallBa ......
ΪʲôҪʹÓÃtomcat£¬jboosÕâÖÖ·þÎñÀ´ÔËÐÐÎÒÃǵĴúÂ룬Óкαػ¨Ôõô¶àÇ®ÂòIBm£¬BEAµÄ·þÎñÆ÷¡£²Ý£¨·ßÇàµÄÓïÆø£©£¬ÎÒÃÇÔÙÒ²²»¸ú±ðÈË×ß¡£
ÄѵÀÎÒÃÇ×Ô¼ºÐ´µÄ¶«Î÷¾Í²»¿É¿¿Âð£¿ÎÒÃÇ¿ª·¢ÎÒÃǵÄÏîÄ¿£¬ÐèÇóÎÒÃÇ×îÇå³þ£¬ÎÒÃÇÔõô×ö¸ÉÂﻹҪËûÃǹܣ¬SSHÊDZðÈËÌßÈ¥À´¡£
´Ó½ñÒÔºó£¬ÎÒ×Ô¼º¿ª·¢µÄjavaÆóÒµ³ÌÐò(tmd ÎÞ·¨¾ÍÊÇÇëÇó/ÏìӦģʽ ......
Class.forName(xxx.xx.xx) ·µ»ØµÄÊÇÒ»¸öÀà
Ê×ÏÈÄãÒªÃ÷°×ÔÚjavaÀïÃæÈκÎclass¶¼Òª×°ÔØÔÚÐéÄâ»úÉϲÅÄÜÔËÐС£Õâ¾ä»°¾ÍÊÇ×°ÔØÀàÓõÄ(ºÍnew ²»Ò»Ñù£¬Òª·ÖÇå³þ)¡£
ÖÁÓÚʲôʱºòÓã¬Äã¿ÉÒÔ¿¼ÂÇÒ»ÏÂÕâ¸öÎÊÌ⣬¸øÄãÒ»¸ö×Ö·û´®±äÁ¿£¬Ëü´ú±íÒ»¸öÀàµÄ°üÃûºÍÀàÃû£¬ÄãÔõôʵÀý»¯Ëü£¿Ö»ÓÐÄãÌáµ½µÄÕâ¸ö·½·¨ÁË£¬²»¹ýÒªÔÙ¼ÓÒ»µã¡£
A a = ......
±¾ÈËÔÚ½Ó´¥¹ý³ÌÖÐÓÐÁ½¸öÌû×ÓдµÄ²»´í£¬ÔÚ´ËÕûÀíһϣº
1.ÐòÁл¯
:½«¶ÔÏóת»¯³ÉÁ÷µÄ¹ý³Ì³ÆÎªÐòÁл¯
·´ÐòÁл¯
:½«Á÷ת»¯³É¶ÔÏóµÄ¹ý³Ì³ÆÖ®Îª·´ÐòÁл¯
2.¶ÔÏóÐòÁл¯(Serializable)ÊÇÖ¸½«¶ÔÏóת»»Îª×Ö½ÚÐòÁеĹý³Ì£¬¶ø·´ÐòÁл¯ÔòÊǸù¾Ý×Ö½ÚÐòÁлָ´¶ÔÏóµÄ¹ý³Ì¡£
ÉÏÃæÕâÁ½¸ö½âÊͶ¼Í¨Ë×Ò×¶®¡£
ÐòÁл¯¾ ......