java get bat system.out.print_64位WIN SERVER 2008用JAVA调用批处理卡住了

我在本机测试正常。本机是32位WIN7,调用bat正常运行走下去,可是部署到64位WIN8服务器上时在调用BAT批处理的时候能够调用,但是走不下去,运行bat文件输出这步一直没走到。卡住了。求大神帮忙看下。

代码如下:

/**

* 运行bat文件

*

* @param batName

*/

public void runbat(String batName) {

try {

Process ps = Runtime.getRuntime().exec(batName);

InputStream in = ps.getInputStream();

int c;

while ((c = in.read()) != -1) {

System.out.print(in.toString());// 查看输出

}

in.close();

ps.waitFor();

} catch (IOException ioe) {

ioe.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

/**

* 执行bat

* @param url

*/

public void downFileToRegistDCOM(String url){

DownFile d = new DownFile();

try {

System.out.println("======开始注册dcm文件=======");

d.runbat("D:\\dcm\\b.bat");

System.out.println("======完成注册dcm文件=======");

d.runbat("D:\\dcm\\c.bat");

System.out.println("======完成删除dcm文件=======");

} catch (Exception e) {

e.printStackTrace();

}

}

b.bat内容如下:

@echo off

cd /d E:\pcas\dcm4cheTest\dcm4cheTest\dcm4che-2.0.27\bin

dcmsnd DCM4CHEE@localhost :11112 D:\dcm\CT_1.dcm

ping -n 5 127.0.0.1

exit

### 关于无法定程序输入点 `CreateAppContainerProfile` 在 `USERENV.dll` 上的解决方案 #### 错误描述 当在 Windows 7 系统上尝试运行 IntelliJ IDEA 或 PyCharm 的较新版本时,可能会遇到错误提示:“无法定程序输入点 CreateAppContainerProfile 于动态链接库 USERENV.dll”。这是由于 JetBrains 软件的新版本不再完全兼容旧的操作系统(如 Windows 7)。具体来说,Windows 7 缺少某些新的 API 函数支持,而这些函数被现代应用程序所依赖。 --- #### 解决方案概述 以下是针对该问题的具体解决办法: 1. **通过修改启动脚本绕过问题** 可以通过调整软件的启动方式来规避此问题。例如,在安装目录下找到 `idea.bat` 文件并双击运行它[^1]。这种方式会在后台打开一个 CMD 窗口作为中介环境加载 IDE,从而避免直接调用缺失的 DLL 函数。 2. **隐藏 CMD 窗口的方法** 如果上述方法虽然解决了功能问题却带来了额外的 CMD 窗口干扰,则可以进一步优化配置。一种常见做法是在批处理文件中加入命令参数实现窗口最小化或自动关闭逻辑[^4]。例如编辑 `idea.bat` 添加以下内容: ```batch @echo off start /min "" "%~dp0bin\ idea64.exe" exit ``` 3. **降级到更早版本** 对于坚持使用 Windows 7 平台的情况,考虑下载并部署一个较低版本号的 JetBrains 工具也是一个可行的选择。通常而言,JetBrains 官方文档指出自 2019.3 版本起逐渐减少对 Win7 的全面适配;因此选用之前的稳定发行版能够彻底消除此类冲突风险。 4. **升级操作系统** 鉴于微软已终止对 Windows 7 的技术支持与安全更新服务,强烈建议用户尽快迁移到更高版本的操作系统(比如 Windows 10/11),以便获得更好的性能表现以及长期维护保障[^2]。 5. **其他注意事项** 类似现象也可能发生在 Python 运行环境中,如果发现 python.exe 抛出类似的找不到入口点异常,则需确认当前使用的解释器是否匹配目标平台架构,并重新编译或者替换相应的扩展模块[^3]。 --- ### 总结 综上所述,“无法定程序输入点 CreateAppContainerProfile 于动态链接库 USERENV.dll”的根本原因是因不同世代间软硬件生态差异所致。采取适当措施——无论是调整现有流程还是切换至更适合的基础设置——均有助于克服这一障碍。 ```python # 示例代码片段展示如何检测 OS 和执行相应动作 import sys if sys.platform.startswith('win'): import os version = tuple(map(int, os.environ.get("OS_VERSION", "6").split("."))) if version < (6, 1): # 假设低于Win7定义为低版本 print("Detected legacy system; applying compatibility mode.") else: pass # 其他情况无需特别处理 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值