| サンプル集 |
|
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■WordPress ■PowerShell ■Python ■Flutter ■Rust ■Node.js ■other |
| Linuxコマンド |
| 用語集 |
| debian メモ |
| apache2 メモ |
| MySQL メモ |
| Oracle メモ |
| PostgreSQL |
| HOME |
Javaのソースからクラス名、メソッド名を抽出してみます。
◆環境| OS | Windows 10 Home 22H2 64bit OS x64 プロセッサ |
|---|---|
| Python | 3.13.1 |
| VS Code | 1.103.0 |
Javaの構文解析を行えるjavalangというライブラリをインストールします。
> pip install javalang
Collecting javalang
Downloading javalang-0.13.0-py3-none-any.whl.metadata (805 bytes)
Collecting six (from javalang)
Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Downloading javalang-0.13.0-py3-none-any.whl (22 kB)
Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: six, javalang
Successfully installed javalang-0.13.0 six-1.17.0
[notice] A new release of pip is available: 24.3.1 -> 25.2
[notice] To update, run: python.exe -m pip install --upgrade pip
Collecting javalang
Downloading javalang-0.13.0-py3-none-any.whl.metadata (805 bytes)
Collecting six (from javalang)
Downloading six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Downloading javalang-0.13.0-py3-none-any.whl (22 kB)
Downloading six-1.17.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: six, javalang
Successfully installed javalang-0.13.0 six-1.17.0
[notice] A new release of pip is available: 24.3.1 -> 25.2
[notice] To update, run: python.exe -m pip install --upgrade pip
modifiersは{'static', 'public'}のように複数返される場合があるのでpublic、protected、privateだけ抽出するようにしました。 実行時にJavaのソースがあるフォルダ名を指定するようにします。
| extract_class_methods.py | ||
|
実行してみます。
> py .\extract_class_methods.py src
src\FileCopyBase.java,FileCopyBase,public,fileCopy
src\FileCopyBase.java,FileCopyBase,protected,procLine
src\FileCopyBase.java,FileCopyBase,public,getInFileName
src\FileCopyBase.java,FileCopyBase,public,getInFileLength
src\FileCopyBase.java,FileCopyBase,public,getOutFileName
src\FileCopyBase.java,FileCopyBase,public,getOutFileLength
src\JSrc2HTMLTest.java,JSrc2HTMLTest,public,main
src\orgSplit.java,orgSplit,public,main
src\orgSplit.java,orgSplit,private,orgSplit
src\FileCopyBase.java,FileCopyBase,public,fileCopy
src\FileCopyBase.java,FileCopyBase,protected,procLine
src\FileCopyBase.java,FileCopyBase,public,getInFileName
src\FileCopyBase.java,FileCopyBase,public,getInFileLength
src\FileCopyBase.java,FileCopyBase,public,getOutFileName
src\FileCopyBase.java,FileCopyBase,public,getOutFileLength
src\JSrc2HTMLTest.java,JSrc2HTMLTest,public,main
src\orgSplit.java,orgSplit,public,main
src\orgSplit.java,orgSplit,private,orgSplit
期待通りに動作しました。
Copyright (C) 2025 ymlib.com
