jDummy.bat

@echo off
title Java2 SDK Dummy --- Produced by WangYuantao
::keyWords=脚本;批处理;WSH;Java;编译;Application&Applet运行;傀儡;快速简洁;玩涛出品
::Version=1.2

rem 建立临时文件目录
md c:/temp/dummy > nul
set p=c:/temp/dummy/
dir/b *.java > %p%dir.tmp

rem 生成并运行wsh脚本
copy jDummy.bat %p%ini.wsf > nul
echo 1,50D > handle
echo E >> handle
edlin %p%ini.wsf < handle
echo Waiting...
del handle
%p%ini.wsf
if not exist %p%dummy3.ini goto clearAndExit

rem 回收j2sdk路径
FOR /F %%c IN (%p%dummy1.ini) DO set path=%path%;%%c
rem 回收java文件名,编译
FOR /F %%c IN (%p%dummy2.ini) DO set fn=%%c
echo Compiling...
javac %fn%.java
if errorlevel 1 pause & exit
rem 回收java类型,运行
FOR /F %%c IN (%p%dummy3.ini) DO set tp=%%c
if "%tp%"=="1" cls & java %fn%
if "%tp%"=="2" appletviewer %fn%.html

rem 清除临时文件并退出
pause
:clearAndExit
echo y | del %p%*.* > nul
rd c:/temp/dummy
rem ================================如果要保留.class文件,请注释掉或删除此段命令========
::del *.class
if exist %fn%.html del %fn%.html
rem ================================如果要保留.class文件,请注释掉或删除此段命令========
exit

rem =============此系第50行,以下内容为wsh脚本=========
<package>
 <job id="job1">
 <?job debug="true"?>
 <script language="JScript">

//全局变量/
var errorr=0;
var p="c://temp//dummy//"//临时路径,与批处理定义一致
var wshshell=WScript.CreateObject("WScript.Shell");
var fso = new ActiveXObject("Scripting.FileSystemObject");

/jdk路径,来自注册表///
var infor="";
var ver=0;
var str="";
try{
ver=wshshell.regread("HKLM//Software//JavaSoft//Java Development Kit//CurrentVersion");
str=wshshell.regread("HKLM//Software//JavaSoft//Java Development Kit//"+ver+"//JavaHome");
}catch(e){
errorr=1
}finally{}
if(errorr==1){
 wshshell.Popup("没有安装J2SDK,或注册表拒绝访问。");
}else{
str+="//bin";
var ini = fso.CreateTextFile(p+"dummy1.ini", true);
ini.Write(str);
ini.Close();

///主类信息,来自java源文件,使用正则表达式解析
var numMclass=0;
var typeMclass=0;
var dir = fso.OpenTextFile(p+"dir.tmp", 1);
var fn;
var java;
var jf;
var restr="";
var re;
var index=0;
var inindex=0;
var Mfn,Mtype;
while (!dir.AtEndOfStream){
 fn=dir.ReadLine();
 java=fso.OpenTextFile(fn, 1);
 jf=java.ReadAll();
 restr="public class "+fn.split(".")[0];
 re=new RegExp(restr,"i");
 index=jf.search(re);
 if(index!=-1){
  numMclass++;
  typeMclass=1;
  restr="public class "+fn.split(".")[0]+" extends Applet";
  re=new RegExp(restr,"i");
  var inindex=jf.search(re);
  if(inindex!=-1){
   typeMclass=2;
  }
  Mfn=fn.split(".")[0];
  Mtype=typeMclass;
 }
}
if(numMclass==0){WScript.Echo("不存在任何Java文件使其文件名与所含主类同名,请修改。")}
else if(numMclass>1){WScript.Echo("当前文件夹下存在不唯一的Java文件其文件名与所含主类同名,请手动选择编译。")}
else if(numMclass==1){
 ini = fso.CreateTextFile(p+"dummy2.ini", true);
 ini.Write(Mfn);
 ini.Close();
 ini = fso.CreateTextFile(p+"dummy3.ini", true);
 ini.Write(Mtype);
 ini.Close();
 if(Mtype==2){
  ini = fso.CreateTextFile(Mfn+".html", true);
  ini.Write("<applet code=/""+Mfn+".class/" width=/"400/" height=/"400/"></applet>");
  ini.Close();
 }
}
}
 </script>
 </job>
</package>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值