java调用bat文件踩坑

想法:使用java编写web应用,使用人脸识别的功能。一开始想到利用java调用python文件即可,中途遇到切换anaconda的python环境问题,特此记录。查资料过程中,发现利用socket通信,让java和python交互可能更加好使,之后有机会再搞。
同时,还有一些疑惑,如果直接在cmd调用python的文件,会爆出很多TensorFlow的版本警告问题,但是java控制台却并没有输出警告信息!
package com.lan.facenet;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

@SpringBootTest
class FacenetApplicationTests {

    @Test
    void contextLoads() {
        Process proc;
        //bat文件记得使用ANCI编码,否则执行bat文件的时候会保乱码的错误,无法正常执行。
        String pathBat = "F:\\华为云盘\\学习\\java_stu\\facenet\\src\\main\\resources\\static\\pythonbat.bat";
        try {
            proc = Runtime.getRuntime().exec(new String[]{"cmd.exe","/c",pathBat});
            proc.waitFor();
            //用输入输出流来截取结果
            BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream(),"GBK")); //这里切记使用正确的编码,否则控制台打印会乱码。
            String line = null;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            in.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
<think>好的,用户想要查找Arthas的部署和使用指南。首先,我需要回忆一下之前提供的引用内容,看看有没有相关的信息。引用[1]提到了分布式部署的经验和启动server的命令,引用[2]和[3]则涉及下载、解压和安装步骤。用户可能需要从安装到基本使用的完整流程。 首先,部署部分应该包括下载和解压。根据引用[2]和[3],下载地址是GitHub的发布页面,解压命令是unzip,然后进入目录。这部分需要详细说明步骤,确保用户能正确解压和定位目录。 然后是启动部分。引用[1]提到启动server的命令是java -jar,但用户可能还需要客户端连接的步骤。此外,引用[2]中的as.sh或as.bat脚本是用来启动Arthas工具的,需要强调如何选择目标Java进程。 接下来是基本使用,比如常用命令dashboard、watch、trace。这些命令对于诊断问题非常有用,需要简要介绍每个命令的功能,并给出示例,比如watch命令监视方法参数和返回值。 可能还需要注意事项,比如确保Java版本兼容,以及网络配置是否正确,特别是分布式部署时的服务器端口开放问题,引用[1]提到了这一点。此外,用户可能需要知道如何安全退出,防止连接残留。 最后,生成相关问题时要覆盖部署、命令、分布式、性能监控等方面,确保用户能进一步探索。需要检查引用是否覆盖了所有必要的信息,比如下载、安装、启动命令、使用示例和网络配置。确保步骤清晰,没有遗漏关键点,同时语言要简洁明了,方便用户跟随操作。</think>### Arthas部署与使用教程 #### 一、Arthas部署步骤 1. **下载与解压** - 从GitHub下载最新版本: ```bash wget https://github.com/alibaba/arthas/releases/download/arthas-all-3.6.9/arthas-packaging-3.6.9-bin.zip ``` - 解压文件: ```bash unzip arthas-packaging-3.6.9-bin.zip -d ./arthas ``` 解压后目录包含核心文件`arthas-boot.jar`[^3]。 2. **启动Arthas** - 进入解压目录并运行启动脚本: ```bash cd arthas ./as.sh # Linux/Mac as.bat # Windows ``` - 选择目标Java进程ID,按提示输入编号即可连接[^2]。 3. **分布式部署(可选)** - 启动Tunnel Server(服务端): ```bash java -jar arthas-tunnel-server.jar ``` - 客户端连接时需指定服务端地址: ```bash ./as.sh --tunnel-server ws://服务器IP:8080 ``` 需确保服务器端口开放(默认8080)[^1]。 --- #### 二、基础使用示例 1. **查看实时监控面板** 输入`dashboard`命令,显示线程、内存、GC等实时状态: ```bash dashboard ``` 2. **监控方法调用参数** 使用`watch`命令监视方法入参和返回值: ```bash watch com.example.service.UserService getUserById "{params, returnObj}" -x 3 ``` 3. **追踪方法调用链路** 通过`trace`命令分析方法耗时: ```bash trace com.example.controller.OrderController createOrder ``` --- #### 三、注意事项 1. **Java版本兼容性** Arthas要求目标进程使用JDK 6+,建议使用JDK 8+以获得完整功能[^2]。 2. **网络配置** 分布式部署时需检查防火墙是否放行Tunnel Server端口。 3. **安全退出** 输入`stop`命令后需彻底断开连接,避免残留进程占用资源。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值