zoukankan      html  css  js  c++  java
  • windows 双击执行jar包出现:could not find the main class

    {一}动机

    最近自己写了个小应用,用于生成子系统树需要的配置信息,打包为可执行jar发给其他同事使用时双击jar包提示“could not find the main class”.

    首先当然要检查一下JRE环境等,经过一番折腾整理如下几项注意点(首先说明一下是在windows7):

    {二}问题分析

    {1}确认jar输出方式

    确认jar输入方式是不是不小心选错了,直接在netbeans中输出可执行jar,检查之后不存在此问题;

    {2}确认jar是否可执行

    正确配置java环境变量后,在控制台执行java -jar xxx.jar 是否正常运行,如果不能正常运行说明jar包有问题;

    问题一般是没有指定main方法入口,具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件,看是否有Main-Class属性,并且对应的类路径是否正确。

    {3}确认文件打开方式

    由于机子上装了压缩软件,jar包被压缩软件所关联,导致双击jar包无法运行,解决办法当然是改变打开方式:

    将默认打开方式改为jre/bin目录下的javaw.exe

    {4}修改windows注册表(这一点百度一下就有的,整理在此处备用)

    由于文件打开类型配置的问题,导致双击jar包出现找不到main函数,该类问题不管是xp,还是Win7比较统一

    的解决办法是修改关联程序的注册表,修改方法如下

    注意:"C:Program FilesJavajre6injavaw.exe"应为你所装的javaw.exe的实际路径

    注册表项的路径为:

    HKEY_CLASSES_ROOTAplicationsjavaw.exeshellopencommand

    在此路径下有一默认键值, 不正常的情况下, 键值是:"C:Program FilesJavajre6injavaw.exe" "%1"

    将键值改为"C:Program FilesJavajre6injavaw.exe" -jar "%1"

    {三}经过上述分析,终于通过修改注册表时候解决问题。

  • 相关阅读:
    Vulnhub系列:Tomato(文件包含getshell)
    Linux基础之终端、控制台、tty、pty简介说明
    linux服务器之间传输文件的四种方式
    Vulnhub系列:Os-hackNos
    [GXYCTF2019]BabyUpload
    CVE-2018-12613
    [MRCTF2020]Ez_bypass
    [BUUCTF 2018]Online Tool
    [BJDCTF 2nd]fake google
    [网鼎杯 2020 青龙组]AreUSerialz
  • 原文地址:https://www.cnblogs.com/masb/p/3154947.html
Copyright © 2011-2022 走看看