站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题jar双击没有反应?

jar双击没有反应?

摘要: jar双击没有反应?


class Fibi
{
public long fibinacii(int n)
{
long c=0;

if(n==1||n==2)
c=1;
else
c=fibinacii(n-1)+fibinacii(n-2);
return c;
}
}

public class B
{
public static void main(String args[])
{
Fibi a=new Fibi();
for(int i=1;i<=10;i++)
{
System.out.print(" "+a.fibinacii(i));
}
}
}

程序极其简单,我创建了jar文件,也些好了.mf文件,可双击就是没有反应,怎么回事呢?


在Windows的设置也要改啊。jar文件是WinRAR默认打开,还是Java/Javaw



.mf文件中有没有写
Main-Class: package.mainClass


建一个 MANIFEST.MF 文件

Main-Class: 主程序名




.mf文件是这样的

Manifest-Version: 1.0
Main-Class: B
Created-By: 1.5.0(Sun Microsystems Inc.)

我没有用包
在网上搜索了一下,别人范的错误我都没有犯呀。可就是没反应,在命令行可以执行的。

但我在命令行 javaw test.jar时,说找不到主类,明明有呀
怎么回事呢,哪位碰到过,如何解决的?郁闷了一个早上了,java怎么这么折腾人


你没装win-jre
装了以后jar文件才于点激关联


安装jdk的时候装了一个jre。装完jdk,产生了两个文件夹jdk1.5.0和jre1.5.0。

我还按照人家的提示,担心与winrar关联,写了一个批处理文件,如下
javaw -jar tom.jar
但运行该批处理文件还是不行

不知道怎么与jre关联,需要特殊设置吗?没有说呀。应该是在任何地方都可以运行吧,不用一定要拷贝到特定的文件夹了吧。点.jar文件右键,打开方式中有一个“java(TM)2 platform standard edition binary”,不知道是什么?



安装jdk的时候,还提示安装了jre,但我发现装完的jdk目录下有一个jre,另外与jdk平行的还单独生成了一个jre目录,不知道两个之间有什么区别?


classpath=.;
这一句有没有加入到你的classpath环境变量里?
.表示当前目录,如果没有把"."加到classpath,他根本不会搜索当前目录里的jar文件


.mf文件要写好而且要完整,具体写法上面已经有了。

把所有的.class和.mf文件jar起来

如果默认打开方式是winrar

那么写一个bat文件
javaw -jar X.jar

保存成A.bat

运行就可以了:)



.mf文件是这样的

Manifest-Version: 1.0
Main-Class: B
Created-By: 1.2.2(Sun Microsystems Inc.)
可能是.mf写错了。







源文件如上,就不再重复写了。

classpath=.;c:/java/jdk1.5.0/lib/tools.jar;c:/java/jdk1.5.0/lib/dt.jar;c:/java/jdk1.5.0/bin

Mymoon.mf文件清单如下:
Manifest-Version: 1.0
Main-Class: B
Created-By: 1.2.2(Sun Microsystems Inc.)

我把他们存在d:/test 目录中,并对源文件B.java进行了编译,生成了B.class和Fibi.class,然后在DOS环境下
d:/test>jar cfm tom.jar Mymoon.mf B.class Fibi.class
于是生成了tom.jar
双击,没反应。

于是又写了批处理文件tom.bat
javaw -jar tom.jar
双击批处理文件还是没有反应。

各位,诸位,什么原因呢?我还有什么地方弄错了?我很较真,弄不好心里就总放不下。






是不是已经生成了阿,只是没有弹出来而以,我也做了一个socket的程序,监听一个端口,点了jar文件以后,没有反应,但是在任务管理器里面多了一个javaw进程,并且已经监听我指定的端口,说明已经运行了。


我的进程里没有javaw进程,我看了的。郁闷死了,为什么我的就不行呢?还有谁碰到过呢


下面这个是正确的,你可以参考下
Manifest-Version: 2.0
Class-Path: argouml-model.jar ocl-argo.jar //你需要配置搜索路径吗?
Created-By: 1.2 (Sun Microsystems Inc.)
Main-Class: org.argouml.application.Main //你的主类加包名了吗?


写一个bat
javaw -jar name.jar


关于jar运行问题,首先要取消jar文件与winrar的关联,可以打开winrar的设置选项,在文件关联选项那里去掉jar前的钩.假设前提系统已经安装 jre,jar文件将自动与javaw 关联

windows的环境变量设置是否正确,path and classpath/

manifest.mf 文件是否正确,举例说明下manifest.mf文件的格式:

Manifest-Version: 1.0
Created-By: 1.4.2 (Sun Microsystems Inc.)
Main-Class: myprojects.win32programs.Win32programs

说名:Mani -Class: myprojects.win32programs.Win32programs后面应该空一行.
Main-Class:后面接的是一个class文件但不要.class后缀文件名.,与在cmd下运行java className一样






批处理文件到底写成
javaw -jar aaa.jar /*一些书上这样提到,但没反应*/
还是
java -jar aaa.jar /*可以运行*/

我做成jar文件后,用java -jar aaa.jar可以运行处结果,但双击的时候,总提示
Exception in thread "main" java.lang.NoClassDefFoundError: aaa /jar


我也遇到过这种情况,楼主在命令行试用java -jar Tom.jar应该是可以的吧
好像在网上看到如果是小应用程序和窗口程序就可双击执行,这种程序不行。我试了果真是这样,楼主试试,等待确切答案。



↑返回目录
前一篇: Integer类中toString(int i)方法的(i * 52429)>>>(16+3)的问题
后一篇: import test.*