调用exe文件,有谁知道怎么处理麽?在线等...

applandtea 2009-11-18 01:20:34
我写了个编辑器,现在我要调用 java JDK 下面的java.exe和javac.exe文件,来编译和运行我编辑好的文件。
可是现在遇到一个问题,javac命令 能够直接 用 "javac.exe C:\\try.java"
但是java.exe好像不行,由于编译出来的文件时try.class ,而java运行命令要用"java.exe C:\\try",这时会出现找不到文件的情况。
请问如果我要用java命令执行C:\\try.class,应该怎么写啊?


顺便问一下,如果我的文件路径有空格,该怎么处理?
比如 "javac.exe C:\\my text\\try.java",这条命令无法运行,该怎么改?

有谁知道怎么改么?本人不胜感激!
...全文
199 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
applandtea 2009-11-18
  • 打赏
  • 举报
回复
恩,可以了,呵呵,字符串处理不是很会。
谢谢您了!
zhuzeitou 2009-11-18
  • 打赏
  • 举报
回复
就是这句 Process p = run.exec("java.exe -cp \"C:\\\" try");
改成Process p = run.exec("java.exe -cp C:\\ try");
zhuzeitou 2009-11-18
  • 打赏
  • 举报
回复
找到问题了,呵呵

没有空格的路径不要加引号,恩
zhuzeitou 2009-11-18
  • 打赏
  • 举报
回复
恩?我测试下来毫无问题啊………………
我也是在cmd里测试的……

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

public class test {
public static void main(String args[]) throws Exception {
Runtime.getRuntime().exec("javac \"C:\\my test\\Sort.java\"");
Process p = Runtime.getRuntime().exec("java -cp \"C:\\my test\" Sort");
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String next;
while ((next = br.readLine()) != null) {
System.out.println(next);
}
br.close();
p.destroy();
}
}


我是这样一个代码,C:\my test\Sort.java是一个我自己写的排序小程序,执行结果我输出在一个文本里,如下
[-251918451, -392604201, 865205594, -1201009064, -1227039789, 1424678733, -2030454820, 384284945, 1820674383, 1210336436, -856217544, -1185717825, 836652580, -1031831831, 1527469589, -492164693, 1955597521, -90859821, 2118184106, -471902599, 26372843, 746057743, 1764776596, 1470519142, -845388020, -851371569, -1903846678, -1769907504, -950117877, -1738061313, 619772814, -471517189, -863856787, -199694680, 1714255045, 185315601, -1439489766, 193839513, -228825590, 68768106, 1385849427, 800975427, 1956629534, -926127090, -1111480861, 714684901, 1658405987, 2134834807, 1417886612, 887684584, 973435242, 1503493018, 193167588, -843619189, -2146396982, 122733352, 819413240, 1370394562, -998608333, -415643376, 1302470609, -1952746917, -806563902, -1484672695, -1152187203, -1688282269, -1052170346, -26647603, -1095649265, 811160519, 1642552994, 1152376040, 675031058, -972770755, -66546492, 366394802, -589395654, 255363428, 1126064663, -1727995687, -217004644, 616879146, -961014396, -1633749085, -1575555169, 551584877, 736938143, 2145022770, 1925819379, 949999588, 1328700592, 1424965130, 2116470466, -377448640, 385791246, 464062928, 221866022, -1588026482, 1469170355, 1061238100]
[-2146396982, -2030454820, -1952746917, -1903846678, -1769907504, -1738061313, -1727995687, -1688282269, -1633749085, -1588026482, -1575555169, -1484672695, -1439489766, -1227039789, -1201009064, -1185717825, -1152187203, -1111480861, -1095649265, -1052170346, -1031831831, -998608333, -972770755, -961014396, -950117877, -926127090, -863856787, -856217544, -851371569, -845388020, -843619189, -806563902, -589395654, -492164693, -471902599, -471517189, -415643376, -392604201, -377448640, -251918451, -228825590, -217004644, -199694680, -90859821, -66546492, -26647603, 26372843, 68768106, 122733352, 185315601, 193167588, 193839513, 221866022, 255363428, 366394802, 384284945, 385791246, 464062928, 551584877, 616879146, 619772814, 675031058, 714684901, 736938143, 746057743, 800975427, 811160519, 819413240, 836652580, 865205594, 887684584, 949999588, 973435242, 1061238100, 1126064663, 1152376040, 1210336436, 1302470609, 1328700592, 1370394562, 1385849427, 1417886612, 1424678733, 1424965130, 1469170355, 1470519142, 1503493018, 1527469589, 1642552994, 1658405987, 1714255045, 1764776596, 1820674383, 1925819379, 1955597521, 1956629534, 2116470466, 2118184106, 2134834807, 2145022770]
applandtea 2009-11-18
  • 打赏
  • 举报
回复
用您给的方法好像不行,我在cmd窗口中运行程序以后,运行到
Process p = run.exec("java.exe -cp \"C:\\\" try");
时会在cmd窗口输出java.exe的帮助信息。应该怎么改呢,非常感谢您!
applandtea 2009-11-18
  • 打赏
  • 举报
回复
我用的下面的语句。我运行把运行以后获取到的输入输出流都输出在另外一个编辑框中了。
Runtime run = Runtime.getRuntime();
Process p = run.exec("java.exe -cp \"C:\\\" try");

zhuzeitou 2009-11-18
  • 打赏
  • 举报
回复
不行指的是什么?你这样运行肯定是不会跳出cmd窗口来显示东西的
applandtea 2009-11-18
  • 打赏
  • 举报
回复
我运行 C:\根目录下的try.class用下面的语句不行:
exec("java.exe -cp \"C:\\\" try")
zhuzeitou 2009-11-18
  • 打赏
  • 举报
回复
比如说这个就是
java.exe -cp "C:\my text" try
字符串就是"java.exe -cp \"C:\\my text\" try"
zhuzeitou 2009-11-18
  • 打赏
  • 举报
回复
回头再看看#2楼………………
如果路径有空格就用引号括起来
applandtea 2009-11-18
  • 打赏
  • 举报
回复
恩,有空格的解决了。那第一个问题java.exe运行文件怎么办呢?
zhuzeitou 2009-11-18
  • 打赏
  • 举报
回复
#5楼的回复不是已经写出来了么
applandtea 2009-11-18
  • 打赏
  • 举报
回复
请问怎么改呢
zhuzeitou 2009-11-18
  • 打赏
  • 举报
回复
………………
加引号不是这么加的………………

dos下这样javac.exe "C:\my text\try.java"
字符串就是"javac.exe \"C:\\my text\\try.java\""
applandtea 2009-11-18
  • 打赏
  • 举报
回复
我是在程序中调用exe文件,不是在DOS下运行javac和java
applandtea 2009-11-18
  • 打赏
  • 举报
回复
回2楼 java -cp c:\\try 不行

有空格加引号好像不行。比如我想运行 C:\Documents and Settings\try.java
用 exec("javac"+ " "+ "C:\\Documents"+ " "+ "and"+ " "+ "Settings\\text.java")不能运行
zhuzeitou 2009-11-18
  • 打赏
  • 举报
回复
少打了个反斜杠………………
java -cp c:\ try
zhuzeitou 2009-11-18
  • 打赏
  • 举报
回复
java -cp c: try呢?

有空格加引号
串联谐振双有源桥(SR-DAB)DC-DC变换器闭环仿真研究内容概要:本文围绕串联谐振双有源桥(SR-DAB)DC-DC变换器的闭环仿真展开研究,重点探讨其在电力电子系统中的动态响应特性与控制策略。通过对SR-DAB变换器建立数学模型,并结合Matlab/Simulink进行闭环仿真,分析系统在不同工作条件下的电压、电流波形及功率传输效率,验证控制算法的有效性与稳定性。研究涵盖系统建模、控制器设计(如PI控制)、软开关实现条件、抗干扰能力以及动态调节性能,旨在提升变换器在新能源、储能、数据中心供电等场景中的可靠性和能效水平。; 适合人群:具备电力电子、自动控制理论基础,从事新能源、微电网、电力系统仿真等相关领域的科研人员与工程技术人员。; 使用场景及目标:①用于高校及科研机构开展DC-DC变换器控制策略的教学与实验;②为工业界在高效率隔离型功率变换系统的设计与优化提供仿真依据和技术支撑;③服务于数据中心、电动汽车、可再生能源并网等场景下的电源系统研发。; 阅读建议:建议读者结合Matlab代码实践仿真流程,重点关注系统建模与控制器参数整定部分,通过调整负载、输入电压等条件观察系统响应,深入理解闭环控制对变换器性能的影响机制。
内容概要:本文介绍了FastReport VCL/FMX/LCL 2026.2.4版本的更新内容,重点涵盖核心引擎、图形处理、用户界面及导出功能的优化与修复。主要更新包括修复了Developer Express兼容性问题、TfrxSVGGraphic在TImage中的显示问题、PDF/A导出合规性、EMF图像旋转异常,以及ReportTree拖拽功能等问题。同时,部分模块新增了HTMLTags对XLSX导出的支持、内置右键菜单和新图标,并改进了FastCube组件的元素调整体验。此外,还修复了CPP脚本中Result参数名的Bug以及自定义过滤器中OR操作失效的问题。; 适合人群:使用Delphi或Lazarus进行开发,且涉及报表设计与数据展示功能的中高级开发者;尤其适用于需要集成FastReport控件到企业级应用中的技术人员。; 使用场景及目标:①提升报表系统在不同平台(VCL/FMX/LCL)下的稳定性和兼容性;②满足PDF/A标准的文档归档需求;③优化用户交互体验,如拖拽操作与元素缩放;④增强脚本支持与数据集字段识别能力,确保开发效率与功能完整性。; 阅读建议:建议结合官方更新链接和实际项目中使用的FastReport模块对照查看,重点关注自身所用组件(如VCL、FMX或Lazarus版)的具体修复项,及时升级以规避已知问题并利用新特性优化报表功能。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧