我的Java开发学习之旅Windows系统下如何运行.jar文件?

Posted 欧阳鹏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的Java开发学习之旅Windows系统下如何运行.jar文件?相关的知识,希望对你有一定的参考价值。

一、需求描述

今天查询大数据平台,看到刚刚发布的APP版本有crash,然后平台上的crash都是混淆的样子,类似如下所示:


所以我得使用proguardgui.jar工具来进行反混淆,查看出现问题的代码在哪里。

但是我准备打开proguardgui.jar工具的时候,发现打不开,如下所示:

C:\\android\\SDK\\tools\\proguard\\lib\\proguardgui.jar工具被7zip压缩软件当做压缩包了。


直接双击,打开,如下所示,展开了jar包的内容。


但是实际上我是想运行这个C:\\Android\\SDK\\tools\\proguard\\lib\\proguardgui.jar工具啊!

二、运行jar包

2.1 直接使用命令

  1. ctrl+r进入CMD模式
  2. 输入 java -jar XXX.jar

在cmd窗口,输入java -jar ,接着把jar文件直接拖进cmd窗口,则会自动填充这个jar包的完整路径,如下所示:

Microsoft Windows [Version 10.0.18363.1500]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\\Users\\000>java -jar C:\\Android\\SDK\\tools\\proguard\\lib\\proguardgui.jar


输入如上所示的命令,直接打开。

这个方法方便是方便,但是每次启动都得在cmd窗口输入java -jar XXX.jar命令才可以运行。用的多了,也会显得麻烦,让人无法忍受。

2.2 bat文件运行jar文件

上面的命令可以写入到bat文件中,这样直接双击bat文件就可以运行该jar文件了。

突然,我脑袋机灵了一会,想起来直接好像是直接运行.bat文件,没有直接运行.jar文件的,然后在C:\\Android\\SDK\\tools\\proguard\\bin目录下找到了proguardgui.bat文件。

proguardgui.bat文件内容如下:

@ECHO OFF

REM Start-up script for the GUI of ProGuard -- free class file shrinker,
REM optimizer, obfuscator, and preverifier for Java bytecode.
REM
REM Note: when passing file names containing spaces to this script,
REM       you'll have to add escaped quotes around them, e.g.
REM       "\\"C:/My Directory/My File.txt\\""

IF EXIST "%PROGUARD_HOME%" GOTO home
SET PROGUARD_HOME=..
:home

java -jar "%PROGUARD_HOME%"\\lib\\proguardgui.jar %*


上面的bat,核心代码还是java -jar xxx.jar*

双击bat文件,可以直接打开

然后就打开了

此方法麻烦的地方在于每个jar文件都需要建立一个对应的bat脚本文件。

当然也可以写一个通用的bat文件,然后拖动jar到bat文件上,即可执行jar文件

比如,我们写一个 run_jar.bat 脚本文件,内容如下

@echo off
java -jar %1
pause


然后拖动jar到bat文件上,即可执行jar文件


2.3 一劳永逸的方法

方法一,方便是方便,但是每次启动都得在cmd窗口输入java -jar XXX.jar命令才可以运行。
方法二,也需要写个bat脚本文件,或者每个jar包写一个对应的bat脚本,或者写个通用的bat脚本。

用的多了,也会显得麻烦,有没有什么一劳永逸的方法呢?

答案是有的,我们修改jar包的打开方式。

  1. 找到javaw.exe

我们右键proguardgui.jar,选择【打开方式】

然后我们【选择其他应用(C)】

点击【更多应用】

滚动到最下面,选择【在这台电脑上查找其他应用】

找到JDK安装目录,找到JDK目录下的javaw.exewe文件,如下所示:

我的电脑上,路径为:
C:\\Android\\JDK\\JDK1.8\\bin\\javaw.exe


选中javaw.exe文件,然后选择【打开】

但是此时还是打不开,我们右键proguardgui.jar文件,选择上【Java(TM)Platform Se binary】,然后勾选上【始终使用此应用打开.jar文件】

这样jar文件的图标就会显示为咖啡杯,但还不能正常打开。

  1. 修改注册表
  • win+R打开命令行窗口,输入regedit打开注册表:

  • 找到“HKEY_CLASSES_ROOT\\Applications\\javaw.exe\\shell\\open\\command”,右键选择“修改”

  • 在文本框中加入“-jar”,其他的东西不要动。

(这里需要注意!!!输入的形式一定要如同下图,-jar插入到“%1”前,且-jar要与其前后内容都有一个空格隔开。一定要注意空格!空格!空格!)

点击“确定”,此时,双击,jar文件就可以直接打开了。

2.4 鼠标右键方法

当然我们也可以直接写注册脚本,如下 所示:

2.4.1 注册鼠标右键菜单

我们新建一个regiser.reg文件

regiser.reg文件内容如下所示:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\*\\shell\\JarRun]
@="Run Jar"

[HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\*\\shell\\JarRun\\command]
@="C:\\\\Android\\\\JDK\\\\JDK1.8\\\\javaw.exe -jar \\"%1\\""

双击运行regiser.reg文件,会弹出下面的对话框,点击【是(Y)】

注册成功

我们可以去注册表编辑器查看


选中jar文件,右键选择【Run Jar】即可运行了。

2.4.2 删除鼠标右键菜单

如果欲删除此右键菜单,则将如下内容保存为unregiser.reg文件,如下:


unregiser.reg文件代码如下所示:

Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\*\\shell\\JarRun]

[-HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\*\\shell\\JarRun\\command]

双击运行unregiser.reg文件,弹出如下对话框,选择【是(Y)】

刚刚注册的右键菜单就被删除了

以上是关于我的Java开发学习之旅Windows系统下如何运行.jar文件?的主要内容,如果未能解决你的问题,请参考以下文章

我的OpenGL学习进阶之旅如何抽取着色器代码到assets目录下的GLSL文件,以及如何通过Java或者C++代码来加载着GLSL文件?

从零开始我的运维之旅

从零开始我的运维之旅

我的C/C++语言学习进阶之旅JNI开发之转换C层返回的结构体为Java实体Bean

我的C/C++语言学习进阶之旅JNI开发之转换C层返回的结构体为Java实体Bean

我的C/C++语言学习进阶之旅JNI开发之转换C层返回的结构体为Java实体Bean