写这个东西的原因就是windows的命令提示符太让人心烦,所以写了这个!本来打算用批处理命令写的,不过我好久没折腾出来!最后将就着使用C写了!
不过编译Java的批处理还是蛮好写的
javac %1
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char * basename(const char *path){
int i,j=0,k,size;
char *fname;
size=strlen(path);
if(size==0)return NULL;
for(i=0;i<size;i++)
if(*(path+i)=='/' || *(path+i)=='\\')j=i;
if(j==0)j=-1; //当路径不存在/时
fname=(char *)calloc(size-j,sizeof(char));
for(i=0,k=j;i<size-j;i++,k++)
*(fname+i)=*(path+k+1);
*(fname+size-j-1)='\0';
return fname;
}
char * del_postfix(char *str){
int length=strlen(str);
for(length--;length>=0;length--){
if(*(str+length)=='.'){
*(str+length)=0;
return str;
}
}
return str;
}
char * link_str(const char *str1,const char *str2){
int len1=strlen(str1);
int len2=strlen(str2);
char *str;
str=(char *)calloc(len1+len2+1,sizeof(char));
if(str==NULL)return 0;
strncat(str,str1,len1);
strncat(str,str2,len2);
return str;
}
int main(int argc,char *argv[]){
char path[200];
char *FileName,*cmd;
if(argv[1]!=NULL)strncpy(path,argv[1],200);
else {
printf("请拖放文件打开,或输入文件名\n");
gets(path);
}
FileName=basename(path);
del_postfix(FileName);
cmd=link_str("java ",FileName);
printf("--------------------------------------\n");
system(cmd);
printf("------------------------------------\n");
system("pause");
return 0;
}
#include<string.h>
#include<stdlib.h>
char * basename(const char *path){
int i,j=0,k,size;
char *fname;
size=strlen(path);
if(size==0)return NULL;
for(i=0;i<size;i++)
if(*(path+i)=='/' || *(path+i)=='\\')j=i;
if(j==0)j=-1; //当路径不存在/时
fname=(char *)calloc(size-j,sizeof(char));
for(i=0,k=j;i<size-j;i++,k++)
*(fname+i)=*(path+k+1);
*(fname+size-j-1)='\0';
return fname;
}
char * del_postfix(char *str){
int length=strlen(str);
for(length--;length>=0;length--){
if(*(str+length)=='.'){
*(str+length)=0;
return str;
}
}
return str;
}
char * link_str(const char *str1,const char *str2){
int len1=strlen(str1);
int len2=strlen(str2);
char *str;
str=(char *)calloc(len1+len2+1,sizeof(char));
if(str==NULL)return 0;
strncat(str,str1,len1);
strncat(str,str2,len2);
return str;
}
int main(int argc,char *argv[]){
char path[200];
char *FileName,*cmd;
if(argv[1]!=NULL)strncpy(path,argv[1],200);
else {
printf("请拖放文件打开,或输入文件名\n");
gets(path);
}
FileName=basename(path);
del_postfix(FileName);
cmd=link_str("java ",FileName);
printf("--------------------------------------\n");
system(cmd);
printf("------------------------------------\n");
system("pause");
return 0;
}
留个脚印。。。慢慢研究
这个太专业了,弄不明白
内容好深奥,好好研究一下