001 发大招了 神奇的效率工具--Java代码转python代码
今天发现一个好玩的工具:
可以直接将java转成python
1、 安装工具(windows 环境下面)
先下载antlr:
下载链接如下:
http://www.antlr3.org/download/antlr-3.1.3.tar.gz
或者到百度云下载:
百度云链接:http://pan.baidu.com/s/1gdgXUM3 密码:2qrx
下载成功并解压后,进入\antlr-3.1.3\runtime目录,输入CMD,在CMD中输入如下指令:
python setup.py install,以安装antlr包,如果报错,进入\antlr-3.1.3\runtime\Python目录下,进行同样的操作
2、安装完antlr的工具包后,如上步骤,在相同目录下,即\antlr-3.1.3\runtime\Python下,输入CMD,进入CMD中,输入指令:pip install java2python ,以在线安装java2python包 。如果通过指令的方式没法成功下载安装java2python包的话,也可以去github上下载java2python包,下载成功后,解压到本地,通过本地安装的方式安装java2python包。
java2python包的Github路径如下:
https://github.com/natural/java2python.git
安装过程中,遇到"'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件"的问题
解决"'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件"的问题的方法:
参考下面链接解决:https://blog.csdn.net/miss85246/article/details/81069276
解决后,pip命令可以正常使用
继续使用命令在线安装java2python包
遇到安装超时的问题:
安装超时,按照命令中给出的黄色提示,输入指令:python -m pip install --upgrade pip,以更新pip包
You are using pip version 9.0.1, however version 19.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
开始更新pip包
开始下载pip包
最终依然没有更新成功pip包,没法使用pip命令在线安装java2python包。
只好github上下载java2python包:https://github.com/natural/java2python.git,然后进行本地安装。
本地安装java2python包
参考链接:
pip install *.whl 直接在pip install命令后添加whl包的全路径名就能本地安装成功了
下载需要的包,一般为zip、tar.gz等的压缩包,解压后,打开命令行,进入解压目录,使用python setup.py install命令安装。
进入路径
在上图红色框中输入cmd
之后cmd中输入命令:python setup.py install
开始本地安装java2python包
本地安装java2python包安装成功
2、使用工具
在Python27\Scripts目录下会生成一个j2py文件,它其实是个python文件
cmd进入该目录下:
然后将一个已写好的java程序跟踪下面的命令后面(.java 文件在python安装路径:\Python27\Scripts\目录下;如不在这个目录下,请带上具体路径;):
python j2py your_java_file.java
如下的java代码:
cmd进入上图目录下
输入命令: python j2py+需要转为python文件的Java文件的路径及其文件名和后缀
本例中为需要转为python文件的Java文件TokenTest.java就在script目录下, 所以无需添加路径,所以本例的指令为
: python j2py TokenTest.java
执行命令出错,遇到报错,提示编码格式有问题:
File "j2py", line 120, in runTransform
tree = buildAST(source)
File "E:\Python\Python27\lib\site-packages\java2python\compiler\__init__.py", line 15, in buildAST
lexer = Lexer(StringStream(source))
File "E:\Python\Python27\lib\site-packages\antlr_python_runtime-3.1.3-py2.7.egg\antlr3\streams.py", line 336, in __init__
self.strdata = unicode(data)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 1058: ordinal not in range(128)
解决办法:找到出错的文件E:\Python\Python27\lib\site-packages\antlr_python_runtime-3.1.3-py2.7.egg\antlr3\streams.py,
打开文件,添加下面三行代码:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
参考图:
自己的图:
保存对streams.py添加代码后的更改;
再次执行命令:python j2py TokenTest.java
ok,执行成功!!!Java代码已经成功转成Python代码,将代码拷贝出来即可调试使用!
转换后的Python代码如下:
#!/usr/bin/env python from __future__ import print_function # package: com.example.demo class TokenTest(object): @classmethod def main(cls, args): if __name__ == '__main__': import sys TokenTest.main(sys.argv) |
参考链接:
https://www.cnblogs.com/ceo-python/p/11601811.html
https://jingyan.baidu.com/article/3c343ff7fb279a0d377963a0.html
001 发大招了 神奇的效率工具--Java代码转python代码的更多相关文章
- 如何在Java中调用Python代码
有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...
- 在Java中调用Python代码
极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...
- java代码转python代码
(1)安装工具(windows 环境下面) 先下载antlr: http://www.antlr3.org/download/antlr-3.1.3.tar.gz 链接:http://pan.baid ...
- java调用python代码
同样的我们需要安装jython,具体的步骤如下: 1. 去 http://sourceforge.net/projects/jython/ 下载最新的jython相关的jar包. 2. 下载下来的ja ...
- python代码检查工具pylint 让你的python更规范
1.pylint是什么? Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准(Pylint 默认使用的代码风格是 PEP 8,具体信息,请参阅 ...
- Java效率工具Lombok使用与原理
Java效率工具Lombok使用与原理 我个人觉得 Lombok是一个优化Java代码以及提升开发效率不错的工具.Lombok 的Github地址为:https://github.com/rzwits ...
- Java 效率工具, 大幅度提高开发效率
你是否有遇到过这样的情况,在开发过程中需要比较两列数据,但使用文本比对工具的话他是按行基准比对的,我还得对每列数据先进行排序,但排序又去哪里排, 想到 excel 可以排序 , 折腾下来,特别麻烦, ...
- Java静态检测工具/Java代码规范和质量检查简单介绍(转)
静态检查: 静态测试包括代码检查.静态结构分析.代码质量度量等.它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行.代码检查代码检查包括代码走查.桌面检查.代码审查等,主要检查代码 ...
- 八、jdk工具之JvisualVM、JvisualVM之二--Java程序性能分析工具Java VisualVM
目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...
随机推荐
- Unimrcp通过Vendor传递随路数据
摘要 项目中需要在MRCPV2的识别消息中,传递一些随路数据.
- 前端模块化IIFE,commonjs,AMD,UMD,ES6 Module规范超详细讲解
目录 为什么前端需要模块化 什么是模块 是什么IIFE 举个栗子 模块化标准 Commonjs 特征 IIFE中的例子用commonjs实现 AMD和RequireJS 如何定义一个模块 如何在入口文 ...
- android开发之dip,dp与px像素之间的转换工具,可能用的不多,但是有总比没有好吧。
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985,转载请说明出处. 下面是介绍: 免积分下载地址:http://download.csdn.net/de ...
- Linq 下的扩展方法太少了,您期待的 MoreLinq 来啦
一:背景 1. 讲故事 前几天看同事在用 linq 给内存中的两个 model 做左连接,用过的朋友都知道,你一定少不了一个叫做 DefaultIfEmpty 函数,这玩意吧,本来很流畅的 from. ...
- 在微信公众号"码海"里学了一招:在update语句里使用case when 以避免多次更新导致的数据异常.
需求:将emp表中工资大于一万的降到9成,工资少于一万的乘以1.2. 难点:如果分成两句update执行,在10000附近的值可能会执行两次. 钥匙:在update语句里采用case when,使更新 ...
- python3 venv
介绍 venv 是什么? python3 自带的虚拟环境 为什么需要虚拟环境? 当服务器中需要搭建共存多个环境时(不同环境之间会有冲突) 比如说环境1:需要mongo:3.6版本 / 但是环境2:需要 ...
- PIE保护绕过
(一):partial write 开了PIE保护的程序,其低12位地址是固定的,所以我们可以采用partial write.但是我们不能写入一个半字节,所以选择写入两个字节,倒数地位进行爆破,范围是 ...
- python中使用cookie进行模拟登录
背景:使用cookie模拟登录豆瓣->我的豆瓣网页 [准备工作] 1.通过Fiddler抓取“我的豆瓣”url: 2.通过Fiddler抓取“我的豆瓣”cookie值. import urlli ...
- Qt Qgis 二次开发——鼠标点击识别矢量要素
Qt Qgis 二次开发--鼠标点击识别矢量要素 介绍: 识别矢量要素需要用到QGis的一个工具类:QgsMapToolIdentifyFeature 一个QgsMapTool的子类的子类,官方文档描 ...
- 吴恩达《深度学习》-第二门课 (Improving Deep Neural Networks:Hyperparameter tuning, Regularization and Optimization)-第一周:深度学习的实践层面 (Practical aspects of Deep Learning) -课程笔记
第一周:深度学习的实践层面 (Practical aspects of Deep Learning) 1.1 训练,验证,测试集(Train / Dev / Test sets) 创建新应用的过程中, ...