当前位置: 首页 > 知识库问答 >
问题:

Jar不能工作,但程序可以在IDE内工作

胡鸿禧
2023-03-14
        StringBuilder builder = new StringBuilder();
    builder.append("name=" + name);
    builder.append(System.getProperty("line.separator"));
    builder.append("library=\"" + library + "\"");
    builder.append(System.getProperty("line.separator"));
    builder.append("slot=" + slot);

    ByteArrayInputStream bais = new ByteArrayInputStream(builder.toString().getBytes());
    /*exception line  */SunPKCS11 provider = new SunPKCS11(bais);


Exception in thread "main" java.lang.NoSuchMethodError: 'void sun.security.pkcs11.SunPKCS11.<init>(java.io.InputStream)'
at JcaProvider.createProvider(JcaProvider.java:70)
at Test.main(Test.java:31)

正在更新属性文件:/home/mehmet/works/netbeansprojects/hsm_java/build/built-clean.属性删除目录/home/mehmet/works/netbeansprojects/hsm_java/build

清洁:

初始化:

已创建目录:/home///netbeansprojects/hsm_java/build/empty

已创建目录:/home///netbeansprojects/hsm_java/build/generated-sources/ap-source-output

将5个源文件编译为/home///netbeansprojects/hsm_java/build/classes

构建jar://home/****/***/netbeansprojects/hsm_java/dist/hsm_java.jar

要在不使用Ant的情况下从命令行运行此应用程序,请尝试:java-jar“/home/****/***/netbeansprojects/hsm_java/dist/hsm_java.jar”

共有1个答案

郦磊
2023-03-14

NoSuchMethodErrors通常意味着版本不匹配。只有当编译器和执行编译器的jvm看到不同的方法签名时,才会出现这种情况。

在您的例子中,我怀疑Java是与NetBeans提供的jvm不同的jvm。打开Netbeans文件夹并查找java安装。使用该安装可能会OWKR。

请注意,Sun.*包是专有的Sun API,因此很可能在java安装中不可用(例如,oracle jvm与openJDK jvm)。或者您可能正在使用Java-8之后的JVM,其中它们更改了一些东西(删除了一些需要启用的类或其他类)。

 类似资料:
  • 这就是我正在做的。 部署此应用程序在 jboss 中失败,因为它在 tomcat 中部署,并且像 charm 一样工作。 我使用来自eclipse的动态web应用程序作为项目源。 将项目导出到war文件并在jboss服务器中部署也不起作用。 web.xml: Spring.xml: 控制器: 和 JBOSS 中的错误:

  • 编辑:getResourceAsStream()与FileInputStream 这是我找到的最好的解释。就我个人而言,在尝试了InputStream的所有不同子类后,我觉得FileInputstream()返回的InputStream和getResourceAsStream()返回的InputStream的实现在某些方面略有不同(导致与javax.xml.parsers.不兼容)。 我会把这个打

  • 几天来,我一直在用头撞这个,完全被难倒了。下面是纲要: 我有一个Eclipse插件项目,使用Tycho通过Maven 3构建 在Maven中,我已经设置了maven-jarsigner-plugin来使用我的keystore对jars进行签名(有关keystore的详细信息,请参阅下文) 我的密钥库里有个Thawte签名的代码签名证书 我可以从目标/*中获取任何签名的jar文件,并在上面运行“ja

  • 终端: $java Display 1 2 线程“main”java.lang.BootStrapMethoder中出现异常错误:java.lang.NoClassDeffounder错误:java.lang/invoke/StringConcatFactory 在Display.main(Display.java:7) 原因:java.lang.NoClassDeffounder错误:java.

  • 我试图将一个由点组成的GeoJSON层从EPSG:4326重新投影到EPSG:3857。当我在一个独立的程序中运行下面的代码时(如下所示),输出与预期一样。 上述代码的输出为: 然而,当我使用完全相同的代码创建一个函数时,输出是EPSG: 3857中的shapefile,其中所有点的坐标都是0.00000, 0.00000。大多数时候,这甚至不会在QGIS中显示。此函数的输入参数是要重新项目的Ge

  • 问题内容: 已解决:问题是Wingware Python IDE。我想现在自然而然的问题是,这是怎么可能的以及如何解决。 昨天我问了一个问题Python中的multiprocessing.Pool问题,这个问题几乎相同,但是我发现它似乎可以在Windows计算机上运行,​​而不能在我的Ubuntu上运行。在本文的结尾,我将发布执行相同功能的代码的稍有不同的版本。 我的问题的简短摘要:在Python