社区
Java SE
帖子详情
**高分求教:如何在Java程序中调用javac编译一个类?
Jiazi840207
2005-12-01 09:45:34
请问如何在Java程序的代码中给出一个*.java的文件,然后调用javac这样的程序生成*.class文件呢?
...全文
668
27
打赏
收藏
**高分求教:如何在Java程序中调用javac编译一个类?
请问如何在Java程序的代码中给出一个*.java的文件,然后调用javac这样的程序生成*.class文件呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Jiazi840207
2005-12-04
打赏
举报
回复
多谢各位,结贴给分...
dj0517
2005-12-02
打赏
举报
回复
学习
lzj34
2005-12-02
打赏
举报
回复
好好学习天天向上
leekooqi
2005-12-02
打赏
举报
回复
要用双斜杠的。。。
String srcFile ="C://HelloWorld.java";
batistuta8848
2005-12-02
打赏
举报
回复
学习ing...
zwfflying
2005-12-02
打赏
举报
回复
cmd-javac *.java
DK_Sun
2005-12-02
打赏
举报
回复
up 有收获!
老無所依
2005-12-02
打赏
举报
回复
这个帖子一定要顶一下,应该很有用处~~
xdop
2005-12-02
打赏
举报
回复
顶,赞成用 com.sun.tools 包中的方法,对于动态编译全面支持
liu_you
2005-12-02
打赏
举报
回复
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.PrintWriter;
import java.lang.reflect.Method;
public class HelloWorldGenerator {
public static void main( String[] args ) {
try {
FileOutputStream fstream
= new FileOutputStream( "HelloWorld.java" );
PrintWriter out = new PrintWriter( fstream );
out.println(
"class HelloWorld { \n"
+ " public static void main( String[] args ) { \n"
+ " System.out.println( \"Hello world!\" );\n"
+ " } \n"
+ "} "
);
out.flush();
Process p
= Runtime.getRuntime().exec("javac -d classes HelloWorld.java" );
p.waitFor();
if ( p.exitValue() == 0 ) {
Class outputClassObject = Class.forName( "HelloWorld" );
Class[] fpl = { String[].class };
Method m = outputClassObject.getMethod( "main", fpl );
m.invoke( null, new Object[]{ new String[] {} } );
} else {
InputStream errStream = p.getErrorStream();
for ( int j = errStream.available(); j > 0; j-- )
System.out.write( errStream.read() );
}
} catch(Exception e){
throw new RuntimeException(e);
}
}
}
alabaza
2005-12-02
打赏
举报
回复
public static int compile(File _javaf) throws IOException
{
String fabsPath = _javaf.getAbsolutePath();
Process p = Runtime.getRuntime().exec("new String[]{"javac","-cp", "\"./lib/j2ee1.4.jar;./classes\"", "fabsPath");
InputStream perrorStream = p.getErrorStream();
InputStream poutStream = p.getInputStream();
int pec, poc;
while(((pec = perrorStream.read()) != -1) | ((poc = poutStream.read()) != -1))
{
System.err.print((pec != -1) ? ((char) pec) : ' ');
System.out.print((poc != -1) ? ((char) poc) : ' ');
}
return p.exitValue();
}
此方法亦可。
alabaza
2005-12-02
打赏
举报
回复
我在上面说的:
public static int javac(String[] cmd)
{
return com.sun.tools.javac.Main.compile(cmd,new PrintWriter(System.err));
}
大河V5
2005-12-02
打赏
举报
回复
学习
tramp73
2005-12-02
打赏
举报
回复
Runtime rt=Runtime.getRuntime();
rt.exec("set Path=%JAVA_HOME%/lib/tools.jar");//设置环境变量
rt.exec("javac *.java");//编译源文件
aaa2003gf
2005-12-01
打赏
举报
回复
xue xi
conquer2004
2005-12-01
打赏
举报
回复
jf
crazycy
2005-12-01
打赏
举报
回复
Runtime.getRuntime().exec("javac *.java")
alabaza
2005-12-01
打赏
举报
回复
%JAVA_HOME%/lib/tools.jar
类com.sun.tools.javac.Main这个就是javac的入口类
可以用它来编译
如果愿意给分 本人只接受37分,谢谢
Mybeautiful
2005-12-01
打赏
举报
回复
哪有topcoder系统 ?
pretenderxzz
2005-12-01
打赏
举报
回复
学习一下
加载更多回复(7)
java
编程 网络大讲堂 pdf_
Java
编程网络大讲堂
绪论10.1
Java
的发展史10.2
Java
的特征10.3
Java
的工作原理30.4
Java
的应用领域50.5
Java
的版本50.6
Java
API文档60.7
Java
开发工具6第一篇
Java
基础篇第1章
Java
简介161.1
Java
到底好在哪里,
高分
求教
161.2
Java
只...
java
编程 网络大讲堂 pdf_《
Java
编程网络大讲堂》 闫迎利、王伟平 【正版电子纸书阅读_PDF下载】- 书问...
目录绪论10.1
Java
的发展史10.2
Java
的特征10.3
Java
的工作原理30.4
Java
的应用领域50.5
Java
的版本50.6
Java
API文档60.7
Java
开发工具6第一篇
Java
基础篇第1章
Java
简介161.1
Java
到底好在哪里,
高分
求教
161.2 ...
高校网络安全宣传周活动设计.docx
高校网络安全宣传周活动设计.docx
如何上好计算机基础课.docx
如何上好计算机基础课.docx
Notepad-v3.4-plugin-Installer.exe
notepad--v3.4 windows Notepad--v3.4.0-plugin-Installer.exe 是win10下面的插件版安装包,会关联右键菜单等。 Notepad--v3.4.0-win10-portable.zip 是绿色免安装版本,解压即用,不会关联右键菜单注册表。 Ndd-quick-v3.3.0-win10-single-portable.zip 是单文件绿色免安装版,只包含皮肤和vc依赖库,不含插件、不含文件对比,主推轻量级、快速反应。适合只需要纯粹、轻快级,文本编辑器的用户。不定期发布。 MacOS 版本 Notepad--v3.4.0-mac_x64_12.3.dmg 是macos 12.x 及以后的版本。 Notepad--v3.4.0-mac_arm64_12.3.dmg 是macos 12.x 及以后 arm64 m1/m2芯片 的版本。第一次安装时,需要在设置偏好里面,放开苹果的安装限制,才能正常识别,请自行放开设置一下。 如果还是有问题,参考帖子:#I8JTJN:macOS Sonoma 14.1.1安装提示已损坏:macOS Sonoma 14.1.1安装提示已损坏 uos com.hmja.notepad_3.4.0.0_amd64.deb 是x64 cpu架构的uos系统对应的ndd版本。 其余系统版本后续会发布。 3.4 修改如下: 1 支持文件标签拖入拖出到新窗口的效果。 2 windows下修改快捷键放开。 3 按行号切分大文件。 4 大文件打开时,在文件夹查找所在目录,macos下可能会崩溃问题。 5 目录右键增加删除文件、文件夹功能。 6 补充深色主题下rust语法高亮; lisp 语法失效问题。 7 linux下信号打开文件,不拿锁,打开文件在消息队列
中
去做。
Java SE
62,635
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章