前面写过调用外部程序的,最近我在做的东西又遇到了设置工作目录的问题,
简而言之就是这样的应用
process = Runtime.getRuntime().exec("cmd /k start dir")
这时的默认路径是项目根目录,而很多时候我们需要指定目录,这时候就需要
写道
exec
public Process exec(String command,
String[] envp,
File dir)
throws IOException在有指定环境和工作目录的独立进程中执行指定的字符串命令。
这是一个很有用的方法。对于 exec(command, envp, dir) 形式的调用而言,其行为与调用 exec(cmdarray, envp, dir) 完全相同,其中 cmdarray 是 command 中所有标记的数组。
更准确地说,可以使用通过调用 new StringTokenizer(command) 创建的 StringTokenizer 将 command 字符串拆解成标记,调用时不对字符类别做进一步的修改。然后将标记生成器所生成的标记以相同的顺序放入新的字符串数组 cmdarray 中。
参数:
command - 一条指定的系统命令。
envp - 字符串数组,其中每个元素的环境变量的设置格式为 name=value;如果子进程应该继承当前进程的环境,或该参数为 null。
dir - 子进程的工作目录;如果子进程应该继承当前进程的工作目录,则该参数为 null。
返回:
一个新的 Process 对象,用于管理子进程
抛出:
SecurityException - 如果安全管理器存在,并且其 checkExec 方法不允许创建子进程
IOException - 如果发生 I/O 错误
NullPointerException - 如果 command 为 null,或者 envp 的某个元素为 null
IllegalArgumentException - 如果 command 为空
从以下版本开始:
1.3
另请参见:
ProcessBuilder
第三个参数可以设置dir,即工作目录
类似我如下使用
process = Runtime.getRuntime().exec("cmd /k dir",null,new File("E:\\profit\\java\\"));
分享到:
相关推荐
在这个压缩包中,"study path"可能是一个目录或者文件,它可能包含了学习Java的路径或者一系列逐步进阶的代码示例。 在Java编程中,初学者通常会从以下几个关键知识点开始学习: 1. **环境搭建**:首先,你需要...
总之,通过学习和实践Lua,开发者能够有效地将脚本语言的便捷性与C/C++的高性能结合,实现Java程序调用C程序的场景,提升软件的可维护性和可扩展性。同时,Lua的广泛使用也意味着丰富的社区资源和成熟的集成方案,为...
### Java面试进阶讲义知识点总结 #### 一、Java语言拾遗 ##### 1、Vector与ArrayList - **起源与版本**:`Vector` 类自 JDK 1.0 就已存在,从 Java 2 平台 v1.2 开始进行了改进,实现了 `List` 接口,使其成为 ...
Java面向对象程序设计是计算机科学领域中一门重要的编程语言课程,尤其在软件开发中占据着核心地位。清华大学的耿祥义教授编写的教材是许多学习者深入理解Java面向对象编程的首选资料。这个压缩包中包含的就是这本...
源代码中的基础篇可能涵盖变量、数据类型、控制结构(如if语句、for循环、while循环)、方法定义与调用、数组、字符串等基础概念。进阶篇则可能涉及类与对象的深入探讨,包括构造函数、访问修饰符、继承与多态的实现...
总之,"Java程序设计课件"全面讲解了Java编程的基础和进阶内容,是学习Java语言的宝贵资源,无论对于初学者还是经验丰富的开发者,都能从中受益匪浅。通过深入理解这些知识点,你可以掌握Java编程的核心技能,为开发...
《JSP程序设计实务高手进阶必备》一书聚焦于JSP(JavaServer Pages)的高级应用,旨在帮助程序员提升在实际项目中的技能水平。JSP作为一种动态网页技术,是Java平台上的重要组成部分,它结合了HTML和Java代码,允许...
### Java设计模式详解 #### 一、创建型模式 **1. 工厂方法模式(Factory Method)** - **定义**:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 - **应用场景*...
文件和I/O流是JAVA程序与外部世界交互的基础。书中会介绍如何读写文件,以及如何使用不同类型的流进行数据传输,包括字节流和字符流,以及缓冲流和对象序列化等高级话题。 除此之外,书中还会涉及线程和并发编程,...
2. **封装**:封装是面向对象编程的重要特性,它隐藏了对象的内部实现细节,仅提供公共接口供外部调用,以保护数据的安全性。 3. **继承**:继承允许一个类(子类)从另一个类(父类)继承属性和方法,减少了代码...
5. **调用Java方法**:在易语言程序中,通过你封装的外部调用模块,就可以像调用易语言内置函数一样调用Java方法了。传入参数,执行Java代码,然后获取返回结果。 6. **错误处理和调试**:在调用过程中,要处理可能...
本书将讲解JNI的基本概念、如何编写本地方法、如何编译链接库,以及如何在Java代码中调用这些本地方法。这对于实现高效的文件加密和解压算法非常有用。 五、安全性与加密技术 在免解压密码的场景下,数据的安全性是...
这包括变量声明、数据类型(如整型、浮点型、字符串型)、运算符、控制结构(如if语句、switch语句、循环for、while、do-while)以及函数的定义和调用。 2. **类与对象**:Java是面向对象的语言,因此理解和创建类...
这里通过`cmd.exe`调用`wmic`命令,传入参数`process where name='java-test.exe' call terminate`来终止名为`java-test.exe`的进程。 - `IOException`处理:如果执行命令时出现错误,如无法找到命令或权限不足等...
然后,它会详细介绍Java的基本语法,包括数据类型(基本类型和引用类型)、运算符、流程控制(如if语句、switch语句、循环结构)以及方法的定义与调用。 面向对象是Java的核心特性,因此书中会深入讲解类、对象、...
Java异常处理机制是为了处理程序运行过程中可能出现的错误或异常情况。通过try-catch-finally语句块,我们可以捕获并处理异常。常见的异常类包括NullPointerException、ArithmeticException、...
Java程序设计实用教程源代码是面向初学者的一份宝贵资源,它涵盖了Java编程的基础到进阶概念,旨在帮助学习者通过实践理解Java语言的核心特性。这份源代码集合来源于一本书,通常这样的教程会按照章节或者主题组织,...
它涵盖了初学者从零开始学习Java编程的基础到进阶的知识点,是学员们掌握Java语言的起点。这份资料在Eclipse开发环境中经过了严格的测试,确保所有示例代码都能正常运行,为学习者提供了实操验证的机会。 一、Java...
综上所述,《Java语言程序设计-基础篇-原书第8版》不仅涵盖了Java语言的基础知识,还深入探讨了面向对象编程、类库使用、异常处理、输入输出、多线程和网络编程等高级主题,是一本适合初学者入门和进阶学习的宝贵...