一, Ubuntu下环境的配置
1,安装JDK
首先安装java的jdk,我是从新立得软件包中安装:
sudo apt-get install sun-java6-jdk (jdk的版本取决于你的ubuntu版本)
安装后的jdk的目录是:/usr/lib/jvm/java-6-sun-1.6.0.26/。安装好jdk后,最重要的就是配置环境变量。环境变量的配置有好几种方法,能设置环境变量的文件包括:/etc/profile、/etc/evironment 、~/.profile、/bashrc、~/.bashrc。这几个文件里定义的环境变量,用户使用的权限和执行的时间不一样。在/etc/environment文件里定义jdk环境变量。在该文件中添加:
JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26
CLASSPATH=.:/usr/lib/jvm/java-6-sun-1.6.0.26/lib
(CLASSPATH以冒号分隔开。. 号表示当前目录)
然后在~/.bashrc文件中添加:
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26
export CLASSPATH=.:$JAVA_HOME/lib
因为ubuntu默认安装了OPENJDK所以要选择所用的JDK执行下面两条命令:
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-6-sun-1.6.0.26/bin/java 300
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-6-sun-1.6.0.26/bin/javac 300
这样安装的java就可以加入java选单。再调用下面的命令就可以选择java的版本了。
update-alternatives --config java
在终端测试一下吧!到此jdk就安装完成了。
2.安装Jpype
从官网上下载JPype。在unbuntu下安装还需要做点小修改,修改setup.py,文件中setupLinux函数中的self.javaHome变量为自己的JDK目录:
self.javahome='usr/lib/jvm/java-6-sun-1.6.0.26‘
运行python setup.py install.的话 可能会出现找不到Python.py。需要安装python-dev。如果再安装出错的话,就需要你自己排错了。当然你在安装JPype之前必须安装好Python。测试一下在终端中打开python shell,import Jpype。无错表示安装成功。
二 python调用java 示例
写个很简单的java程序并打包成jar包供python程序调用。
简单的java程序:
package test;
public class TestApi
{
public String getData(String key){
return key;
}
public void printData(String key){
System.out.println(key);
}
public static void main(String[] args)
{
System.out.println(123);
}
}
编译成.class文件:
javac TestApi.java
将.class文件放入test文件夹中,在test文件夹外新建一个.mf文件,就叫TestApi.mf吧。并在该文件中加入:
Created-By: Jesse Main-Class: test.TestApi
Main-Class指的就是主程序的入口类,利用下列指令打包jar文件:
jar cvfm TestApi.jar TestApi.mf test
到此,java的包文件已经完成,下面就测试JPype吧:
#!/usr/bin/env python
#coding : utf-8
from jpype import *
jvmpath = getDefaultJVMPath()
startJVM(jvmpath, "-ea", "-Djava.class.path=.")
TA = JPackage('test').TestApi
jd = TA()
jd.printData('1234')
s = jd.getData('a')
print s
shutdownJVM();