「java程序双击运行」双击运行jar

博主:adminadmin 2023-03-22 10:15:08 84

今天给各位分享java程序双击运行的知识,其中也会对双击运行jar进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

怎么直接双击运行用Java写好的程序

打成jar包就行了,用eclipse导出成可运行的jar包

eclipse可以打成jar包,然后就可以直接双击运行了

怎么直接运行java程序

直接运行即双击鼠标运行的方法有二

一.手动打jar包法

1.首先得到你编译后的所有class文件,并讲所有文件放到JDK环境能够识别的目录或盘符下

2.在"运行"框里输入cmd进入"命令行模式"(DOS),进入你存放class文件的目录或盘符,输入:"jar_cfm_任意名字.jar_任意名字.mf_第一CLASS文件.class_第二个CLASS文件.class ....最后一个CLASS文件.class" 按回车得到"任意名字.jar"文件.

3.mf文件是清单文件,向JVM提供程序的相关信息,最简单的格式如下:

任意名字.mf

Manifest-Version:_1.0

Main-Class:_main方法所在类的类名

Created-By:_1.4(Sun Microsystem Inc.)

二.IDE打jar包法

流行的IDE例如eclipse,JBuilder都提供有打包成jar的选项,只需要找到此选项即可.

注:以上文字中的"_"代表空格

JAVA程序怎样做让它双击某个文件就能运行

^^java教程^^《制作可执行JAR》本文阐述了如何把一个不可执行的JAVAArchive(JAR)文件变成可执行,而不用直接操作manifest文件。你会学到写出短小的一个程序,通过运行java-jar命令或在像windows一样的操作系统里面用双击鼠标运行任何JAR文件。

你可以很容易地把应用程序的一整套class文件和资源文件打包到一个JAR中。事实上这就是jar文件存在的一个目的。另外一个目的就是让用户能很容易地执行被打包到jar文件里面的应用程序。那么为什么jar文件仅仅作为文件在整个java里面占据了次要的地位,而本地执行则被忽视?

要执行一个jar文件,你可以使用java命令的-jar选项。举一个例子来说,假如你有个名叫myjar.jar的文件。这个jar是可以运行的,你可以运行它:java-jarmyjar.jar.另外一个办法就是,当JavaRuntimeEnvironment(JRE)已经被安装到一个像windows的操作系统上,将jar文件与JVM关联(关联java.exe跟jar文件)在一起你就可以通过双击jar来运行这个应用程序。当然,jar文件必须是可执行的。

现在的问题是:如何做一个可以执行的jar?

manifest文件以及Main-class入口

在大多数jar中,都在一个叫META-INF的目录里面保存了一个叫MANIFEST.MF的文件。那个文件里面,

包含了一个特殊表项名字叫Main-Class,告诉java-jar命令应该执行哪个class.

问题是你必须为manifest文件手工加入适当表项,而且必须在一定的位置和用一定的格式。不幸的是,不是每个人都喜欢打开写字板编辑配置文件。

让API帮你完成任务

自从java1.2发布以来,一个叫java.uil.jar包的出现,让你能够方便处理jar文件。(注意:该包基于java.util.zip)特别地,jar包让你通过Mainfest类,可以容易操作那些manifest文件.

就让我们用这个API写一个程序吧。首先,这个程序必须知道三样东西:

1。我们要使之可运行的jar文件。

2。运行jar的主类(这个类必须包含在jar中)。

3。输出新jar文件的文件名,因为我们不能简单地覆盖原来的文件。

编写程序

上面列表的三点要求将组成我们的程序的参数。现在,让我们为这个程序选择一个适当的名字。

MakeJarRunnable听起来觉得怎样?

为main方法检查参数

假设我们的main方法入口点是一个标准的main(String[])方法。我们应该这样检查程序的参数:

if(args.length!=3){

System.out.println("Usage:MakeJarRunnable" "jarfileMain-Classoutput");

System.exit(0);

}

请注意参数列表是如何描述的,因为这在以下代码中是很重要的。参数的次序和内容不是固定的;

然而,如果你要改变他们的话,要记住响应修改其他代码。

访问jar和jar的manifest文件

第一,我们必须创建一些了解jar和manifest的对象:

//CreatetheJarInputStreamobject,andgetitsmanifest

JarInputStreamjarIn=newJarInputStream(newFileInputStream(args[0]));

Manifestmanifest=jarIn.getManifest();

if(manifest==null){

//Thiswillhappenifnomanifestexists

manifest=newManifest();

}

设置Main-Class属性

我们把Main-Class入口放到manifest文件的main属性部分。一旦从manifest对象获得这个属性,就可以设置需要的mainclass。然而,如果main-Class属性已经存在原来的jar当中又如何呢?这里我们只是简单地输出一个警告然后退出。我们能加入一个命令行参数告诉程序使用新的值,而代替了旧的那个:

Attributesa=manifest.getMainAttributes();

StringoldMainClass=a.putValue("Main-Class",args[1]);

//Ifanoldvalueexists,telltheuserandexit

if(oldMainClass!=null){

System.out.println("Warning:oldMain-Classvalueis:"

oldMainClass);

System.exit(1);

}

输出新的JAR

我们需要创建一个新的JAR文件,所以我们必须使用JarOutputStream类。注意:

我们必须确定我们不用跟输入文件相同的名字作为输出文件的名字。还有一个方案就是,程序应该考虑到一种情况,就是两个jar文件都是相同的,促使用户覆盖原来的文件,如果他愿意这么做的话。然而,我在保留了这一点,作为读者的一个练习。从如下代码开始:

System.out.println("Writingto" args[2] "...");

JarOutputStreamjarOut=newJarOutputStream(newFileOutputStream(args[2]),manifest);

我们必须从输入JAR写每个表项到输出的JAR,所以迭代每个表项:

//Createareadbuffertotransferdatafromtheinput

byte[]buf=newbyte[4096];

//Iteratetheentries

JarEntryentry;

while((entry=jarIn.getNextJarEntry())!=null){

//ExcludethemanifestfilefromtheoldJAR

if("META-INF/MANIFEST.MF".equals(entry.getName()))continue;

//WritetheentrytotheoutputJAR

jarOut.putNextEntry(entry);

intread;

while((read=jarIn.read(buf))!=-1){

jarOut.write(buf,0,read);

}

jarOut.closeEntry();

}

//Flushandcloseallthestreams

jarOut.flush();

jarOut.close();

jarIn.close();

完成程序

当然,我们必须把这些代码放到一个类的main方法里面,并且需要一大堆import代码。完整程序:

程序使用例子

让我们把这个程序应用到一个例子里面来。假设你有一个应用程序,该程序的入口点是一个叫HelloRunnableWorld的类,再假设你已经创建了一个jar叫myjar.jar,包含了整个程序。运行MakeJarRunnable:

javaMakeJarRunnablemyjar.jarHelloRunnableWorldmyjar_r.jar

正如前面提到的,注意一下我的参数顺序。如果你忘记了顺序,没有参数运行一下程序,它会响应出现一个用法提示信息。

尝试对myjar.jar运行java-jar命令。然后对myjar_r.jar。注意区别不同!好了,你完成了这一切了,浏览一下每个jar的manifest文件(META-INF/MANIFEST.MF)

为什么我的java环境变量设置对了,jar程序还是不能双击运行?

有两种方法:

第一种:用dows命令javaw -jar yanlei.jar

第二种:注册表项的路径为:

\HKEY_CLASSES_ROOT\Aplications\javaw.exe\shell\open\command

的值

"E:\JDK\jdk1.7.0_51\jre\bin\javaw.exe" "%1"

修改为

"E:\JDK\jdk1.7.0_51\jre\bin\javaw.exe" -jar "%1"

然后把jar文件默认打开方式设置为E:\JDK\jdk1.7.0_51\jre\bin\javaw.exe就可以双击运行了

最后补充下相关知识:

一个程序打jar包后,必须要在解压软件中打开,在清单文件上MANIFEST.MF添加(注意:后面一定是要有空格) Main-Class: 包名.类名

jar包双击运行仅对于图形化界面的程序起作用,对控制台的程序不起作用。

java.exe适合用于启动window console控制台程序

javaw.exe适合用于启动GUI程序

javaws.exe适合用于web程序。

java的程序要怎样才能双击就可运行(不用在dos下输入javac、java命令),

首先java程序运行需要的是jre (java运行时环境),并不是jdk

创建可执行的 JAR 文件包

制作一个可执行的 JAR 文件包来发布你的程序是 JAR 文件包最典型的用法。

Java 程序是由若干个 .class 文件组成的。这些 .class 文件必须根据它们所属的包不同而分级分目录存放;运

行前需要把所有用到的包的根目录指定给 CLASSPATH 环境变量或者 java 命令的 -cp 参数;运行时还要到控制台下

去使用 java 命令来运行,如果需要直接双击运行必须写 Windows 的批处理文件 (.bat) 或者 Linux 的 Shell 程序。

因此,许多人说,Java 是一种方便开发者苦了用户的程序设计语言。

其实不然,如果开发者能够制作一个可执行的 JAR 文件包交给用户,那么用户使用起来就方便了。在 Windows 下

安装 JRE (Java Runtime Environment) 的时候,安装文件会将 .jar 文件映射给 javaw.exe 打开。那么,对于一个

可执行的 JAR 文件包,用户只需要双击它就可以运行程序了,和阅读 .chm 文档一样方便 (.chm 文档默认是由

hh.exe 打开的)。那么,现在的关键,就是如何来创建这个可执行的 JAR 文件包。

创建可执行的 JAR 文件包,需要使用带 cvfm 参数的 jar 命令,同样以上述 test 目录为例,命令如下:

jar cvfm test.jar manifest.mf test

这里 test.jar 和 manifest.mf 两个文件,分别是对应的参数 f 和 m,其重头戏在 manifest.mf。因为要创建可

执行的 JAR 文件包,光靠指定一个 manifest.mf 文件是不够的,因为 MANIFEST 是 JAR 文件包的特征,可执行的

JAR 文件包和不可执行的 JAR 文件包都包含 MANIFEST。关键在于可执行 JAR 文件包的 MANIFEST,其内容包含了

Main-Class 一项。这在 MANIFEST 中书写格式如下:

Main-Class: 可执行主类全名(包含包名)

例如,假设上例中的 Test.class 是属于 test 包的,而且是可执行的类

(定义了 public static void main(String[]) 方法),那么这个 manifest.mf 可以编辑如下:

Main-Class: test.Test 回车

这个 manifest.mf 可以放在任何位置,也可以是其它的文件名,只需要有 Main-Class: test.Test 一行,且该

行以一个回车符结束即可。创建了 manifest.mf 文件之后,我们的目录结构变为:

==

|-- test

| `-- Test.class

`-- manifest.mf

这时候,需要到 test 目录的上级目录中去使用 jar 命令来创建 JAR 文件包。也就是在目录树中使用“==”表

示的那个目录中,使用如下命令:

jar cvfm test.jar manifest.mf test

之后在“==”目录中创建了 test.jar,这个 test.jar 就是执行的 JAR 文件包。运行时只需要使用

java -jar test.jar 命令即可。

需要注意的是,创建的 JAR 文件包中需要包含完整的、与 Java 程序的包结构对应的目录结构,就像上例一样。

而 Main-Class 指定的类,也必须是完整的、包含包路径的类名,如上例的 test.Test;而且在没有打成 JAR 文件包

之前可以使用 java 类名 来运行这个类,即在上例中 java test.Test 是可以正确运行的 (当然要在 CLASSPATH

正确的情况下)。

(忘记从哪儿下的了!!可能不太全!!)

java编的程序如何转换成双击就能打开

要想双击运行,需要将编译后的程序打包成Jar包,这样只要使用者电脑上装了JRE并且jar文件默认关联到JRE。

这样jar文件就会显示为Java图标并且双击会自动运行。

关于jar包深入了解可以搜一下jar包格式方面信息,主要是主类名称和类路径的设置。

还有一种方式是把jar包再打包为EXE文件(仅限Windows下使用),无特殊理由不推荐。

关于java程序双击运行和双击运行jar的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2023-03-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。