class(java)文件双击运行遇到的麻烦!

buyaopigu1 2010-01-02 02:13:21
我在注册表添加了
[HKEY_CLASSES_ROOT\.class]
@="javaclassfile"

[HKEY_CLASSES_ROOT\javaclassfile]
[HKEY_CLASSES_ROOT\javaclassfile\shell]
[HKEY_CLASSES_ROOT\javaclassfile\shell\open]
[HKEY_CLASSES_ROOT\javaclassfile\shell\open\Command]
@="c:\\javaclass.bat"

c:\javaclass.bat 的内容如下:
java.exe %1
pause


以实现class文件双击运行!
但是 双击class文件时 java.exe确实运行了,但是没有把我的class文件运行!出现的是帮助窗口
有高手帮我解决下!(不要打成jar包)

我在想是不是要传递一个文件名参数?
...全文
71 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
buyaopigu1 2010-01-16
  • 打赏
  • 举报
回复
我到新华书店去看了下
大有收益呀!

事实不有那么复杂的 只要这样写可以了
[HKEY_CLASSES_ROOT\javaclassfile\shell\open\Command]
@="java.exe \"%~np1\""
而不是@="java.exe %1"!
%1会传递整个路径与文件全名,而java.exe 这个只能用 "类"名 作为参数!
例如用这个命令
java 123.class 是会出错误的(把整个"123.class"当成了"类")
java c:\123.class 也是出错误的(把整个"c:\123.class"当成了"类")
java c:\123 一样会出错误的(把整个"c:\123"当成了"类")

%1 这个参数很有灵活性,它不只可以是 路径与文件名+扩展名,还可以只是 文件名 也就是"类"
(看一下相关书籍吧)


  • 打赏
  • 举报
回复
高手多多。
buyaopigu1 2010-01-16
  • 打赏
  • 举报
回复
我把我的U盘修好了,找到了配置文件,我把它拿出来以帮助有需要的人
细节我就不说了!你还要修改一下以合适你的电脑!

classfile.bat
@O:\配置文件\classfile.exe %1>c:\temp\temp10.txt
@set /p name=<c:\temp\temp10.txt
@java %name%
@pause



classfile.reg
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.class]
@="classFile"

[HKEY_CLASSES_ROOT\classFile]
@="Java class"

[HKEY_CLASSES_ROOT\classFile\DefaultIcon]
@="O:\\配置文件\\classfile.ico,0"

[HKEY_CLASSES_ROOT\classFile\shell]

[HKEY_CLASSES_ROOT\classFile\shell\open]

[HKEY_CLASSES_ROOT\classFile\shell\open\command]
@="O:\\配置文件\\classfile.bat \"%1\""



classfile.c(你要自己编译)
#include <stdio.h>
int main(int ge,char * arg[])
{
int i=0,j=0;
int temp1=0;
int temp2=0;
if(ge<=1)
{ printf("没有文件名");
return 0;
}
for(i=0;;i++)
{ if((arg[1][i]=='.')
&&(arg[1][i+1]=='c')
&&(arg[1][i+2]=='l')
&&(arg[1][i+3]=='a')
&&(arg[1][i+4]=='s')
&&(arg[1][i+5]=='s'))
{ for(j=i;j>0;j--)
if(arg[1][i-j]=='\\')
temp1=i-j;
temp2=i;
break;
}

}
for(i=temp1+1;i<temp2;i++)
printf("%c",arg[1][i]);

}




buyaopigu1 2010-01-16
  • 打赏
  • 举报
回复
我已经解决了!谢谢大家了
用C语言写一个程序 传递参数就可以了,这是代码

(我的U盘刚刚坏了,上传不了代码了)
crazylaa 2010-01-04
  • 打赏
  • 举报
回复
何必改注册表?
直接在.bat里面写
java -classpath "..." 入口类。
双击.bat。。。
ps:如果你有很多class逗需要双击的话,那还是改注册表吧。不过我不会。。。
huntor 2010-01-02
  • 打赏
  • 举报
回复
和jarfile差不多,就是没有 -jar 而已。
不过你怎么设置 classpath

50,504

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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