中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]批处理javac的编译和用java查看生成.class功能程序!
作者:
标题: [求助]批处理javac的编译和用java查看生成.class功能程序! 上一主题 | 下一主题
happysoul
初级用户




积分 29
发帖 15
注册 2008-4-14
状态 离线
『楼 主』:  [求助]批处理javac的编译和用java查看生成.class功能程序!

经常会使用javac 编译写好的java代码
但是经常要改变目录然后要 e:\java>javac [文件名].java  编译
然后 e:\java>java [文件名] 运行查看结果!
如果正确还好,错误了进了死循环还要关了重新cmd重新进入

想用批处理自动判断指定文件夹下 *.java 的文件名然后用javac运行那个文件
(使用简单的 javac *.java 不成功!)
javac 的用处是生成 [文件名].class文件

再就是怎样继续用判断出来的文件名运行 java [文件名].class
(.class 可省略运行)

希望有高手帮个忙!简化偶们调试时浪费的时间!

2008-4-15 19:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 2 楼』:  

CLASS环境变量没设置好
set class=.

2008-4-15 19:33
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 3 楼』:  


@echo off
for /f "tokens=*" %%i in ('dir /a/s/b D:\*.javac') do (
    start "" "%%i" "%%dpni.java"
    java.exe "%%dpni.class"
)
pause
未测试



第一高手    第二高手

2008-4-15 19:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
happysoul
初级用户




积分 29
发帖 15
注册 2008-4-14
状态 离线
『第 4 楼』:  

其实主要是对 .java 的编译!
javac 命令不支持 *.java 这个通配符!而且还要区分大小写(java程序区分大小写)
.class 那个应该没什么
主要就想就设置一次目录(文件目录固定)
为的是识别[文件名] 并交给 javac [文件名].java 去执行

2008-4-15 19:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 5 楼』:  

有一点我不明白,JAVAC 只能执行后缀为.java的文件,如果错误,会出现死循环??

2008-4-15 20:03
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
happysoul
初级用户




积分 29
发帖 15
注册 2008-4-14
状态 离线
『第 6 楼』:  

谢谢!
可是貌似没有能完全通过!
遍历文件做到了,但是程序是用记事本打开的!
应该用 javac.exe 编译 [文件名].java程序 如(D:\>javac [文件名].java)
但是我没能看懂全部的for命令
再有就是 dpni 这个不明白是什么 cmd 提示说是无效标识!

2008-4-15 20:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
happysoul
初级用户




积分 29
发帖 15
注册 2008-4-14
状态 离线
『第 7 楼』:  

不是那个意思!我也是刚接触 java 所以程序不是把握的太好
我的意思是说调试的时候 java 没有写好可能会有死循环是例如
int a = 10;
int i = 0;
while(a = i)
{
System.out.println(".");
}

有时候忘记了{}里面添加自加 i++ 或者前面条件写错了不能跳出循环,只能关闭cmd

2008-4-15 20:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 8 楼』:  

呵呵
while(a = i)
上面这句错了

2008-4-15 20:30
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
happysoul
初级用户




积分 29
发帖 15
注册 2008-4-14
状态 离线
『第 9 楼』:  

哎。。。这都被你发现了!
好像是
while(a == i)
没办法经常犯这种小错!
所以才想弄个批处理 能节约很多时间!

e:
cd java
javac Abc.java
@pause
java Abc
@pause

就好像上面这个!每次都要修改文件名称 所以觉得费劲!

2008-4-15 20:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: