今天发现一个好玩的工具:

可以直接将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包

参考链接:

python 安装本地包的方法

pip install *.whl      直接在pip install命令后添加whl包的全路径名就能本地安装成功了

下载需要的包,一般为zip、tar.gz等的压缩包,解压后,打开命令行,进入解压目录,使用python setup.py install命令安装。

python安装本地包

进入路径

在上图红色框中输入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代码的更多相关文章

  1. 如何在Java中调用Python代码

    有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...

  2. 在Java中调用Python代码

    极少数时候,我们会碰到类似这样的问题:与A同学合作写代码, A同学只会写Python,不熟悉Java ,而你只会写Java不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方 ...

  3. java代码转python代码

    (1)安装工具(windows 环境下面) 先下载antlr: http://www.antlr3.org/download/antlr-3.1.3.tar.gz 链接:http://pan.baid ...

  4. java调用python代码

    同样的我们需要安装jython,具体的步骤如下: 1. 去 http://sourceforge.net/projects/jython/ 下载最新的jython相关的jar包. 2. 下载下来的ja ...

  5. python代码检查工具pylint 让你的python更规范

    1.pylint是什么? Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准(Pylint 默认使用的代码风格是 PEP 8,具体信息,请参阅 ...

  6. Java效率工具Lombok使用与原理

    Java效率工具Lombok使用与原理 我个人觉得 Lombok是一个优化Java代码以及提升开发效率不错的工具.Lombok 的Github地址为:https://github.com/rzwits ...

  7. Java 效率工具, 大幅度提高开发效率

    你是否有遇到过这样的情况,在开发过程中需要比较两列数据,但使用文本比对工具的话他是按行基准比对的,我还得对每列数据先进行排序,但排序又去哪里排, 想到 excel 可以排序 , 折腾下来,特别麻烦, ...

  8. Java静态检测工具/Java代码规范和质量检查简单介绍(转)

    静态检查: 静态测试包括代码检查.静态结构分析.代码质量度量等.它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行.代码检查代码检查包括代码走查.桌面检查.代码审查等,主要检查代码 ...

  9. 八、jdk工具之JvisualVM、JvisualVM之二--Java程序性能分析工具Java VisualVM

    目录 一.jdk工具之jps(JVM Process Status Tools)命令使用 二.jdk命令之javah命令(C Header and Stub File Generator) 三.jdk ...

随机推荐

  1. 理解Django 中Call Stack 机制的小Demo

    1.工作流程 request/response模式下,request并不是直接到达view方法,view方法也不是将返回的response直接发送给浏览器的,而是request由外到里的层层通过各种m ...

  2. android开发 app闪退后fragment重叠bug解决方法,推荐使用第二种方法,完美解决问题

    解决方案为以下两种: 方法1:在fragmentActivity里oncreate方法判断savedInstanceState==null才生成新Fragment,否则不做处理. 方法2:在fragm ...

  3. 安装Android Studio之后无法直接打开SDK Manager

    之前安装的android studio之后,SDK Manager和AVD Manager两个运行程序双击都打不开页面了,之前都是正常的,所以java环境变量的问题是不存在的. SDK Manager ...

  4. 如何利用 docker 快速部署 Mysql 服务

    docker 基础教程不再多说,这里只着重讲如何使用 docker 部署 mysql 服务 docker 拉取 访问 dockerhub,搜索关键词 mysql,我这里选择 mysql-server, ...

  5. CC2530的ADC采集外部电压

    初窥ZIGBEE 要在zigbee的组网中加入烟雾传感器的模块,所以需要用到cc2530的ADC对传感器输出的模拟信号进行采样.下面是自己对实现用CC2530的ADC采集外部电压的程序过程. 以下是A ...

  6. 6 年前,只会 JSP 和 Servlet 就可以找到工作

    这篇文章在去年就已经构思了,不过一直都没有整理出来,今天终于完成了这篇文章,所以发上来给大家看一看,都是一些个人的小感慨,我的观点可能不是非常的完善,大家也可以一起讨论. 找工作之难,难于上青天 五六 ...

  7. JVM 中的对象及引用

    JVM中对象的创建过程 对象的内存分配 虚拟机遇到一条 new 指令时,首先检查是否被类加载器加载,如果没有,那必须先执行相应的类加载过程. 类加载就是把 class 加载到 JVM 的运行时数据区的 ...

  8. leetcode刷题-83删除排序链表中的重复元素

    题目 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 示例 1: 输入: 1->1->2 输出: 1->2 实现 # Definition for singly-li ...

  9. MongoDB基础总结

    1.数据可基本操作 1. 创建数据库 use  databaseName 选择一个数据库,如果数据库不存在就自动创建一个数据库 只有向数据库中插入数据时,数据库才会被真实创建出来,而当数据库中没有数据 ...

  10. JS语法_集合

    数组方法 forEach // no-log Array.prototype.forEach_ = function (cb) { let len = this.length for (let i = ...