如何通过命令行/批处理文件/Python脚本调用Java main类
实现步骤
1 前置准备:修正Java代码并打包为可执行Jar包
你提供的Java代码缺少闭合大括号,先补全所有语法结构,本地测试直接运行main方法传入目录参数可正常输出结果后,再进行打包操作:
- 打开IntelliJ的
File→Project Structure→Artifacts - 点击+号选择
JAR→From modules with dependencies - 主类选择
ase.ATool.AnaliT,确认后勾选Build on make - 点击
Build→Build Artifacts→ 选择刚创建的Jar配置执行Build,生成的Jar包会输出到项目的out/artifacts目录下,可单独拷贝到任意位置使用
注意:所有运行环境都需要提前安装Java运行环境(JRE)并配置好PATH环境变量,否则执行时会提示找不到java命令。
2 命令行直接调用方法
直接执行以下命令即可,将目标文件夹路径替换为你要扫描的实际路径:
java -jar AnaliT.jar 目标文件夹路径
3 制作一键运行的批处理(bat)脚本
不需要复杂逻辑,新建文本文档修改后缀为.bat,和Jar包放在同一个文件夹内,写入以下内容即可:
@echo off chcp 65001 :: 支持拖拽文件夹到bat图标自动传参,也支持双击后手动输入路径 if "%~1"=="" ( set /p input_path=请输入要扫描的文件夹路径: ) else ( set "input_path=%~1" ) java -jar AnaliT.jar "%input_path%" pause
脚本支持两种使用方式:
- 直接双击运行,按照提示输入文件夹路径即可执行
- 把目标文件夹拖拽到bat文件图标上,会自动把文件夹路径作为参数传入运行,无需手动输入
4 Python脚本中调用的方法
用Python内置的subprocess模块即可调用,无需安装额外依赖,示例代码如下:
import subprocess import sys # 要扫描的文件夹路径,支持从Python运行参数传入,也可手动指定 target_path = sys.argv[1] if len(sys.argv) > 1 else "你的默认扫描路径" # 调用Jar包执行 run_result = subprocess.run( ["java", "-jar", "AnaliT.jar", target_path], capture_output=True, text=True, encoding="utf-8" ) # 输出运行结果 print("运行输出:") print(run_result.stdout) if run_result.stderr: print("运行错误:") print(run_result.stderr)
内容的提问来源于stack exchange,提问作者Rajeev KR
相关产品推荐
相关产品推荐

