首页 > 解决方案 > 在小程序中加载时,清单中的 Class-Path 属性会导致烦人的 FileNotFoundException

问题描述

我有一个 java 小程序(我知道古老的技术,但我现在不能改变它!)它使用 gradle 来拉入所有依赖项。依赖项之一是 jaxws-rt-2.2.8.jar。此 jar 文件具有以下清单:

Manifest-Version: 1.0
Implementation-Title: JAX-WS Implementation
Major-Version: 2.2.8
Implementation-Version: 2.2.8
Built-By: mghudson
Class-Path: javax.annotation-api.jar jsr181-api.jar jaxb-api.jar jaxws
 -api.jar javax.xml.soap-api.jar FastInfoset.jar gmbal-api-only.jar ha
 -api.jar jaxb-core.jar jaxb-impl.jar management-api.jar mimepull.jar 
 policy.jar resolver.jar saaj-impl.jar stax-ex.jar stax2-api.jar strea
 mbuffer.jar woodstox-core-asl.jar
Created-By: Apache Maven
probe-provider-class-names: com.sun.xml.ws.transport.http.servlet.JAXW
 SRIDeploymentProbeProvider
Implementation-Vendor: Sun Microsystems Inc
SVN-Revision: 13980
Implementation-Vendor-Id: com.sun
Build-Jdk: 1.6.0_35
Build-Version: JAX-WS RI 2.2.8
SVN-URL: scm:svn:https://svn.java.net/svn/jax-ws~sources/branches/jaxw
 s22/jaxws-ri/bundles/jaxws-rt
Specification-Title: The Java API for XML Web Services
Specification-Version: 2.2
Extension-Name: com.sun.xml.ws
Build-Id: 2.2.8
Archiver-Version: Plexus Archiver

请注意,它列出了没有版本信息的javax.annotation-api.jar(和其他 jar)作为 Class-Path 属性的一部分。这似乎是个问题。当我加载我的 java 程序(作为一个小程序)时,我收到一个 java.FileNotFoundException 指示找不到 javax.annotation.api.jar。这是正确的,它不在类路径中。但是,jar 文件 javax.annotation.api-1.2.jar 位于类路径中。它作为 gradle 依赖项被引入。这不会导致我的程序表现不佳,但我想消除错误消息。我怎样才能做到这一点?

注意,一种方法是手动编辑 jaxws-rt-2.2.8.jar 的清单并删除引用,但这似乎不对。有没有其他方法可以消除这个不那么骇人听闻的消息?

标签: javaappletjapplet

解决方案


推荐阅读