例子,用JSch 调用 linux
/**
* 远程 执行命令并返回结果调用过程 是同步的(执行完才会返回)
*
* @param host
* 主机名
* @param user
* 用户名
* @param psw
* 密码
* @param port
* 端口
* @param command
* 命令
* @return
*/
public static String exec(SocketSSHConfig sshConfig, JTextArea show) {
String result = "";
Session session = null;
ChannelExec openChannel = null;
try {
JSch jsch = new JSch();
session = jsch.getSession(sshConfig.getUserName(), sshConfig.getHost(), sshConfig.getPort());
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setPassword(sshConfig.getPassWord());
session.connect();
openChannel = (ChannelExec) session.openChannel("exec");
openChannel.setCommand(sshConfig.getCommand());
openChannel.connect();
ShowHelper.print(openChannel.getInputStream(), openChannel.getErrStream(), show);
} catch (JSchException e) {
result += e.getMessage();
System.out.println("JSchException 报错!");
} catch (IOException e) {
result += e.getMessage();
System.out.println("IO报错!");
} finally {
if (openChannel != null && !openChannel.isClosed()) {
openChannel.disconnect();
}
if (session != null && session.isConnected()) {
session.disconnect();
}
}
return result;
}
public static boolean print(InputStream in, InputStream err, JTextArea printArea) {
boolean result = true;
// 获取标准输出
final BufferedReader readStdout = new BufferedReader(new InputStreamReader(in));
// 获取错误输出
final BufferedReader readStderr = new BufferedReader(new InputStreamReader(err));
// 创建线程执行
String tmp1 = "";
String tmp2 = "";
// 逐行读取
try {
while ((tmp1 = readStdout.readLine()) != null || (tmp2 = readStderr.readLine()) != null) {
if (tmp1 != null && !tmp1.isEmpty()) {
printChangeRow(tmp1, printArea);
}
if (tmp2 != null && !tmp2.isEmpty()) {
printChangeRow(tmp2, printArea);
result = false;
}
}
} catch (IOException e) {
result = false;
}
return result;
}
public static void print(String str, JTextArea printArea) {
if (printArea == null) {
System.out.print(str);
return;
}
printArea.append(str);
}
public static void printChangeRow(String str, JTextArea printArea) {
if (printArea == null) {
System.out.println(str);
return;
}
printArea.append(str);
printArea.append("\r\n");
}
相关推荐
在IT行业中,尤其是在软件开发...总之,Java调用ZPL条码打印机实现中文打印和网络打印涉及字符编码、网络通信、ZPL指令等多个技术层面。理解这些知识点,并结合实践中的调试和优化,可以帮助我们高效地完成打印任务。
在本文中,我们将深入探讨如何使用JAVA调用ZPL(Zebra Programming Language)条码打印机来打印中文实例。ZPL是一种编程语言,专门用于配置和控制Zebra品牌的条码和标签打印机,它允许用户创建自定义的标签设计,...
### Java调用Windows应用程序知识点详解 #### 一、概述 在Java编程中,有时我们需要让Java程序去调用操作系统中的其他应用程序,例如打开记事本(Notepad)、启动计算器(Calculator)等。这种方式不仅可以增强...
本文将详细讲解如何使用Java调用外部程序以及如何捕获并处理程序的输出。 首先,`Runtime.getRuntime().exec()`方法是Java中最基础的调用外部程序的方式。它允许我们执行系统命令,并返回一个`Process`对象,通过该...
Java打印Excel技术主要涉及到Java应用程序如何与打印机进行交互,以便将Excel文档的内容输出到纸质媒介上。在这个过程中,一个常见的第三方库是Jacob(Java COM Bridge),它为Java提供了与COM组件交互的能力,使得...
3. **打印输出**:将处理后的图像发送至打印机,这可能涉及到打印机驱动程序的调用或通过网络打印机服务进行打印。 #### 二、代码示例解析 提供的部分代码示例展示了使用Java生成并保存条形码图像的过程: ```...
标题提到的"java调用vbs获取获取excel各sheet页打印总数"就是一个这样的解决方案。VBScript是Windows操作系统内置的一种脚本语言,能够与Office应用程序交互,包括Excel。通过VBScript,我们可以直接操作Excel对象...
在Java编程环境中,打印HTML文档是一项常见的任务,特别是在开发Web应用程序或者需要将网页内容输出到纸质媒介时。本文将深入探讨如何使用纯Java API来实现HTML(包括HTML5)的打印服务,以及如何预先设置默认的...
这种方法不仅展示了如何动态地改变和恢复系统输出流,还提供了处理输出数据的基本框架,为更高级的应用提供了基础。在实际应用中,可能还需要考虑错误处理、资源管理(如关闭流)等问题,以确保代码的健壮性和效率。
6. **实例化和控制BarTender对象**:在Java程序中,首先需要创建BarTender的应用实例,然后通过这个实例来执行各种操作,如打开模板、设置数据源、预览和打印等。 7. **错误处理和日志记录**:在集成过程中,必须...
本示例探讨了如何使用Java调用Python脚本,实现数据交换和处理。Java和Python结合使用,可以充分利用Java的高效性能和Python的易用性及丰富的库资源。 Java调用Python主要依赖于Jython、Apache Beam、Java的Runtime...
在IT行业中,生成一维码和二维码以及调用打印机进行打印是常见的自动化流程,尤其在物流、仓储、零售等业务场景中应用广泛。一维码(如条形码)和二维码(如QR码)作为数据载体,能快速、准确地记录和传递信息,而...
首先,我们需要理解Java调用外部程序的基本原理。在Java中,我们可以使用`Runtime`类或`ProcessBuilder`类来执行操作系统级别的命令,例如运行bat文件。以下是一个简单的示例,展示如何使用`Runtime.getRuntime()....
Java调用IO流是进行数据输入输出操作的核心技术之一,特别是在处理文件、网络通信和程序间数据传递时不可或缺。在Java中,IO流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理单个字节...
这篇博客“Shell执行/调用Java/Jar程序例子”探讨了如何使用Shell脚本来启动和控制Java应用程序,特别是JAR文件。这里我们将深入讲解相关知识点。 1. **Shell脚本基础** Shell脚本是Linux或Unix操作系统中的命令行...
在本文中,我们将深入探讨如何使用Java实现二维码批量打印,主要基于给定的标题"java 实现二维码批量打印"和描述中的技术环境。首先,我们要理解二维码(Quick Response Code)是一种二维条码,能存储大量数据,常...
本文将详细探讨如何利用Java调用Linux命令,这一技能对于任何希望在Java应用中集成Linux功能的开发者来说都是至关重要的。 ### Java调用Linux命令的方法 Java提供了多种方式来执行外部命令或脚本,其中最常用的是...
这个类可能负责处理PDF文件或其他类型的打印数据,以适应不同的输出设备。 综上所述,这个项目涉及了Java Web打印的自定义实现,利用Java技术直接调用PDF打印,而非依赖浏览器功能。开发者使用了MyEclipse作为开发...
在Java编程环境中,调用并口打印机涉及到的是设备驱动程序的接口使用,这在现代软件开发中相对较少见,因为大多数现代计算机不再支持并行端口(LPT口)。然而,对于那些还需要处理老旧硬件或者特定场景应用的开发者...