当我把当我点击jar文件时,老是提示不能找到main class。请问为啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当我把当我点击jar文件时,老是提示不能找到main class。请问为啥?相关的知识,希望对你有一定的参考价值。

为了便于说明情况,我简化代码如下: package kankan; public class system public static void main(String[] agrs) System.out.println("yuu"); 然后我再控制台下输入命令: jar cvf Test.jar . 然后我解压jar包,用记事本打开 MANIFEST.MF文件,修改里面的内容如下: Manifest-Version: 1.0 Created-By: 1.6.0_14 (Sun Microsystems Inc.) Class-Path: . Main-Class: system 在然后我输入命令,jar cvfm Test.jar MANIFEST.MF . 当我点击jar文件时,老是提示不能找到主class。 然而当我,把代码中的package kankan;去掉,在打包就成功了,这是为什么呀?

参考技术A 配置成这样就行了Main-Class:kankan.system
因为你的system在kankan包下,你要写全路径,你只写类名的话就是在缺省包中找你的system,这样当然找不到了,所有说要写包名.类名才行
参考技术B win7中同样有文件夹选项
你随便打开个文件夹
在菜单栏》工具》文件夹选项
之后和xp一样有注册文件类型的,你添加一个就是了

Java 虚拟机启动器错误:Jar 文件无效或损坏

【中文标题】Java 虚拟机启动器错误:Jar 文件无效或损坏【英文标题】:Java Virtual Machine Launcher Error: Invalid or Corrupt Jar file 【发布时间】:2015-11-14 14:32:01 【问题描述】:

我正在使用 netbeans 创建一个 jar 文件。然后我使用lanch4j 创建这个jar 文件的exe。当我在我的计算机上运行此 exe 文件时,它运行良好但是当我在其他计算机上运行此 exe 时它给了我警告

无法验证发布者。你想运行这个软件吗

当点击运行时,exe文件运行良好。

我通过使用 windows sdk 附带的 signtool.exe 将证书添加到我的 exe 文件来删除该警告。它成功地将证书添加到我的 exe 文件

但是现在当我运行我的 exe 文件时,它给了我错误

"Java 虚拟机启动器 错误:Jar 文件无效或损坏"

请帮帮我。

谢谢。

【问题讨论】:

How to be a verified publisher? 的可能副本 【参考方案1】:

由于您的应用程序尚未签名,因此引发此警告。您没有在本地计算机上看到错误,因为您从未传输过应用程序。您在其他机器上看到它大概是因为您将它上传到某个地方,然后将其下载到另一台机器上。

查看其他问题了解更多信息:Signing a Windows EXE file

【讨论】:

感谢 dzylich。我有一个扩展名为 .pfx 的证书。但我不知道如何将该证书安装到我的 exe 文件中。 我将证书添加到我的 exe。它已成功添加,但是当我运行该 exe 文件时出现错误“Java 虚拟机启动器错误:无效或损坏的 jar 文件” 嘿@UsmanAli,我不确定是什么导致了这个错误。我对专门为 Java 包签名不太熟悉,不知道是什么原因造成的。 感谢@dzylich 的帮助 我已通过 ksign 登录,但仍然显示错误。还有其他的吗?【参考方案2】:

使用sign4j验证launch4j exe.. 它避免了 jar 损坏..

sign4j signtool sign /s MyCertStore /n My_cert sample.exe

验证此链接.. 它会帮助你.. Sign a launch4j executable in ant with sign4j and jsign

【讨论】:

sign4j 是 launch4j 中用于签署 exe 的工具。 它存在于 lauch4j 文件夹中。详细步骤:验证此博客:【参考方案3】:

使用 LAUNCH4J 将 JAR 的 EXE SIGNER 封装在一个 EXE 中:

1.CERTIFICATION CREATION 与普通 EXE SIGNER 相同。

makecert -r -pe -ss MyCertStore -n "CN=MyTestCert" MyTestCert.cer

(注意:将此证书导入到 windows 中 certmgr.msc 中的受信任证书部分。)

只有它不会在本地系统显示未知发布者。

验证:

在windows中,在开始窗口搜索框中输入certmgr.msc,屏幕上会提示certmgr.msc,打开后在受信任的证书部分检查证书是否导入成功。)

2.使用 SIGNTOOL 和 SIGN4J 登录 EXE:

sign4j signtool sign /s MyCertStore /n MyTestCert  "sample.exe"

【讨论】:

以上是关于当我把当我点击jar文件时,老是提示不能找到main class。请问为啥?的主要内容,如果未能解决你的问题,请参考以下文章

电脑老是提示超出配置文件储存空间不足

Bootstrap 3 Navbar - 不能正确折叠

公式编辑器老是提示MT Extra字体无效啊

spring管理javamail发邮件时我把MyEclipse里的activation和那个mail包删了,可以发邮件,但是action又报错

C1任务-1答案

C1任务-1答案