JAVA 调用exe程序执行对应的文件 (个人用于编译Java文件)
需求:
需要利用Java程序,来调用计算机本身的黑窗口,来将特定的Java文件编译成对应的字节码文件。
实现思路:
通过调用Java的Runtime类,每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
通过 getRuntime 方法获取当前运行时。而通过查找doc可以发现,还可以通过流的方式获取执行成功/失败输出到控制台的信息。
实现代码:
public class CompileJava {
public static String rootDir = "/Users/tujietg/java/Eclipse-WorkSpace-dxMall/shw/";
public void CompileJavaMethod(String fileName) {
try {
Runtime rt = Runtime.getRuntime();
// windowscd /Users/tujietg/Desktop/ && java HelloWorld
String command = "javac " + "Task.java";
Process proc = rt.exec(command, null, rootDir));
InputStream stderr = proc.getErrorStream();
InputStreamReader isr = new InputStreamReader(stderr);
BufferedReader br = new BufferedReader(isr);
String line = null;
System.out.println("<ERROR>");
while ((line = br.readLine()) != null)
System.out.println(line);
System.out.println("</ERROR>");
// int exitVal = proc.waitFor();
// System.out.println("Process exitValue: " + exitVal);
} catch (Throwable t) {
t.printStackTrace();
}
}
}
总结:
自己对Java的Runtime类,还是不是非常的熟练,自己还需要多多练习,多给自己找需求,然后通过查阅博客或者文档想着办法来实现。
参考博客:https://berdy.iteye.com/blog/810223
JAVA 调用exe程序执行对应的文件 (个人用于编译Java文件)的更多相关文章
- Java调用Linux命令执行
调用方式 Java调用linux命令执行的方式有两种,一种是直接调用linux命令,一种是将linux命令写到.sh脚本中,然后调用脚本执行. 详细说明 直接调用:使用java中lang包下面的Run ...
- .net 部署到服务端IIS,Process调用exe程序无法运行问题解决
场景: 开发某一功能将html内容转换为pdf,采用第三方插件wkhtmltopdf.exe进行转换.在本地调试正常运行,部署到服务端后文件没有正常生成. IIS中,Process打不开cmd程序,程 ...
- JAVA版exe可执行加密软件
1.现在eclipse(myeclipse)中插入以下代码 1.1 MainForm package cee.hui.myfile; import javax.swing.*; import java ...
- java调用python程序以及向python程序传递参数
在做项目的时候,经常会碰到这个问题,主要程序是用java写的,有些功能使用python写的,整个项目需要把java代码和python代码进行整合,在一个项目里面运行,这就涉及到java调用python ...
- Java调用Python程序
最近,需要在应用中,需要使用Java程序去调用Python代码,主要有两种实现方式. 一.使用Jython架包 因为调用的Python代码中需要使用Json对象,开始使用jython2.5.2,发现不 ...
- java调用exe
前言:最近做了一个Java跨平台开启,关闭,重启nginx的功能,在Java操作exe上遇到了一些问题,下面是对这个问题一个总结 一.Java操作exe的三种方式 (1)Runtime.getRunt ...
- C#调用Exe程序示例
在编写程序时经常会使用到调用可执行程序的情况,本文将简单介绍C#调用exe的方法.在C#中,通过Process类来进行进程操作. Process类在System.Diagnostics包中. 示例一 ...
- Java调用ARM模板执行Azure Rest建立VM过程
Azure Resource Manager 提供一致的管理层,用于管理通过 Azure PowerShell.Azure CLI.Azure 门户.REST API 和开发工具执行的任务,所有工具使 ...
- Linux应用程序调用其他程序执行
一.system 1.作用 在Linux应用程序中调用另一个程序: 2.用法 system("/sbin/ifconfig"): 二.popen 1.作用 调用另一个程序执行,同时 ...
随机推荐
- linux 上安装多个不同版本的mysql 踩的坑
最近由于业务需要,考虑使用json类型,据了解 mysql 在版本5.7中可以支持 json 类型的数据支持,但同时目前开发环境中使用的是 mysql 5.6版本,上面还有很多项目的数据库在上面,同时 ...
- Linux系统部署samba服务记录
Samba(Server Messages Block)是一种linux系统和windws系统之间依靠网络协议共享文件的服务程序,(Samba has provided secure, stable ...
- 网络层和arp协议
1:arp协议功能:获取mac地址 ----------------------在同一个局域网:发送端mac 接收端mac(FF:FF:FF:FF:FF:FF:FF) 源IP 目标IP 数据 - ...
- SublimeText 修改文件扩展名的默认语法高亮
平时经常使用sublime text3编辑matlab程序,但是sublime text使用的默认语法高亮是Object C,用起来很不方便,每次都需要在Sublime Text右下角手动点一下语法高 ...
- .NET(C#、VB)移动开发——Smobiler平台控件介绍:TextTabBar控件
TextTabBar控件 一. 样式一 我们要实现上图中的效果,需要如下的操作: 从工具栏上的“Smobiler Components”拖动一个TextTabBar控件到窗体界面上 ...
- Eclipse4JavaEE配置Tomcat运行环境
如果我们想搭一个网站,我们可以使用Eclipse for JavaEE IDE进行开发. 初次使用需要配置网站的运行环境,可以去Apache官网下载Tomcat 8.5或Tomcat 9的版本 然后打 ...
- 代码托管-gerrit-介绍与环境搭建
什么是gerrit? 转载自 https://blog.csdn.net/tanshizhen119/article/details/79874127 gerrit是谷歌开源的一个git服务端. 主要 ...
- vue+element-ui实现行数可控的表格输入
element的table中使用 <template slot-scope="scope"> </template> 包裹想要插入的input,或者sele ...
- vue项目中获取cdn域名插件
import axios from 'axios' let CdnPath = {} CdnPath.install = function (Vue, options) { Vue.prototype ...
- webpack 样式表抽离成专门的单独文件并且设置版本号
先以下的 css 的处理我们都把 mode 设置为 production. webpack4 开始使用: mini-css-extract-plugin插件, 1-3 的版本可以用: extract- ...