绿化Java环境的安装与配置
安装JDK
在Oracle的官网下载:
官方最新版本是16,个人选择下载11版本的zip压缩包:jdk-11.0.6_windows-x64_bin.zip
网盘下载地址:
链接:https://pan.baidu.com/s/16vNLcOVd5LfTRoAnneL2ww
提取码:6uke
我解压到了D:\deploy目录下:
设置环境变量
然后需要将该目录添加JAVA_HOME环境变量中。官方的说明是:
大致操作:
然后将%JAVA_HOME%\bin添加到path环境变量中:
注意:添加到用户的Path环境变量和系统的Path环境变量都可以,区别在于当前用户生效还是当前电脑所有用户都生效。
把JAVA_HOME
的bin
目录添加到PATH
中是为了在任意文件夹下都可以运行java
。
至此Java已经安装完毕,下面我们验证一下安装是否成功:
验证安装
打开命令行,输入如下命令,如果安装成功,会看到如下输出:
Microsoft Windows [版本 10.0.18363.418]
(c) 2019 Microsoft Corporation。保留所有权利。
C:\Users\ASUS>java -version
java version "11.0.5" 2019-10-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)
C:\Users\ASUS>
如果你看到的版本号不是16
,而是15
、1.8
之类,说明系统存在多个JDK,且默认JDK不是JDK 16,需要把JDK 16提到PATH
前面。
JDK中的可执行文件
在JAVA_HOME
的bin
目录下有很多可执行文件,常用的有:
- java:用于启动JVM执行指定的编译后的代码;
- javaw:也用于启动JVM执行指定的编译后的代码,但无控制台窗口;
- javac:用于把Java源码文件(
.java
后缀)编译为Java字节码文件(.class
后缀); - jar:用于把一组
.class
文件打包成一个.jar
文件; - javadoc:用于从Java源码中自动提取注释并生成文档;
- jdb:Java调试器,用于开发阶段的运行调试。
配置双击直接执行Jar程序
在没有配置前,我们需要通过java -jar xxx.jar
命令来启动程序:
现在我们希望以后能直接双击打开。
首先,随便找个jar文件右键单击点打开方式–>默认打开方式,点预览,选择%JAVA_HOME%\bin下的javaw.exe文件点确定,让注册表中先生成相应的项和值:
然后修改刚才生成的注册表项(regedit命令打开注册表):
修改HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command的默认值:
由
"D:\deploy\jdk-11.0.5\bin\javaw.exe" "%1"
改为
"D:\deploy\jdk-11.0.5\bin\javaw.exe" -jar "%1"
将jar包文件属性改成如下形式:
再次双击Jar包就打开了程序:
Python调用Java
首先安装JPype:
pip install jpype1
直接调用Java的函数
在IDE工具中执行以下代码:
__author__ = "小小明"
from jpype import *
if __name__ == "__main__":
# 启动java虚拟机
jvm_path = getDefaultJVMPath()
print(jvm_path)
startJVM(jvm_path, "-ea")
# 调用println函数
java.lang.System.out.println("hello world,hello python,hello java")
# 关闭虚拟机
shutdownJVM()
结果:
D:\deploy\jdk-11.0.5\bin\server\jvm.dll
hello world,hello python,hello java
执行现成的可执行Jar包
比如我们执行前面提到的jar包:
__author__ = "小小明"
from jpype import JClass
from jpype import startJVM, getDefaultJVMPath, shutdownJVM
if __name__ == "__main__":
# 启动java虚拟机
# 注意使用了-D选项指定了jar的目标位置
startJVM(getDefaultJVMPath(), "-ea",
"-Djava.class.path=E:/tmp/jfreechart-1.0.13-demo.jar")
# 加载自定义的java class
SuperDemo = JClass("demo.SuperDemo")
SuperDemo.main([])
# 关闭虚拟机
shutdownJVM()
再IDE中执行后已经顺利的运行Java桌面程序。
调用自己编写的Java类
创建Java文件JPypeDemo.Java内容如下:
public class JPypeDemo{
public String say(String user){
return "[小小明]说: " + user;
}
public int calc(int a, int b){
return a + b;
}
}
编译Java源代码:
javac JPypeDemo.java -encoding UTF-8
注意:encoding参数指定你的Java源码实际保存的编码
打包成jar文件:
jar cvf JPypeDemo.jar JPypeDemo.class
编译和打包好的文件:
然后我们可以在Python中调用:
__author__ = "小小明"
from jpype import JClass, java
from jpype import startJVM, getDefaultJVMPath, shutdownJVM
import os
if __name__ == "__main__":
# 启动java虚拟机
# 注意使用了-D选项指定了jar的目标位置
startJVM(getDefaultJVMPath(), "-ea", "-Djava.class.path=./JPypeDemo.jar")
# 加载自定义的java class
JDClass = JClass("JPypeDemo")
jd = JDClass()
# 获取java标准库打印函数
jprint = java.lang.System.out.println
# 调用自定义class中的函数,并输出返回值
jprint(jd.say("你好!"))
jprint(jd.calc(5, 4))
# 关闭虚拟机
shutdownJVM()
结果:
[СС��]˵: ��ã�
9
在Pycharm执行出现乱码。但在本地命令行窗口执行一切正常,结果:
[小小明]说: 你好!
9
官方手册
http://jpype.readthedocs.io/en/latest/userguide.html#
今天的文章绿化版Java11的环境配置与Python调用Java分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/33641.html