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包

參考鏈接:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM