zoukankan      html  css  js  c++  java
  • 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 untime目录,输入CMD,在CMD中输入如下指令:

    python setup.py install,以安装antlr包,如果报错,进入antlr-3.1.3 untimePython目录下,进行同样的操作

       

       

       

       

       

    2、安装完antlr的工具包后,如上步骤,在相同目录下,即antlr-3.1.3 untimePython下,输入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、使用工具 

    在Python27Scripts目录下会生成一个j2py文件,它其实是个python文件 

    cmd进入该目录下: 

    然后将一个已写好的java程序跟踪下面的命令后面(.java 文件在python安装路径:Python27Scripts目录下;如不在这个目录下,请带上具体路径;): 

    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:PythonPython27libsite-packagesjava2pythoncompiler\__init__.py", line 15, in buildAST

    lexer = Lexer(StringStream(source))

    File "E:PythonPython27libsite-packagesantlr_python_runtime-3.1.3-py2.7.eggantlr3streams.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:PythonPython27libsite-packagesantlr_python_runtime-3.1.3-py2.7.eggantlr3streams.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

  • 相关阅读:
    [Sqlite] 移动嵌入式数据库Sqlite日报SQL操作语句汇总
    Matlab spline
    读书笔记:《重来REWORK》
    读书笔记:《一生的计划》
    6 款好用的 PC+Android 同步 GTD 软件
    第35本:《像外行一样思考,像专家一样实践》
    第34本:《暗时间》
    第33本:《删除:大数据取舍之道》
    第32本:《超级时间整理术----每天多出一小时》
    第31本: 思考的乐趣
  • 原文地址:https://www.cnblogs.com/xlfcjx/p/11770423.html
Copyright © 2011-2022 走看看