`

关于两个jar包中存在包名和类名都完全相同的jar包冲突问题

 
阅读更多

 

 

原文链接:http://blog.csdn.net/zhoulianglg/article/details/27204561

最近弄webservice,我使用的jdk自带的wsimport工具来生成客户端代码,发现生成的代码具有编译错误,错误描述如下:

The method getPort(QName, Class<T>) in the type Service is not applicable for the arguments (QName, Class<SCServicePortType>, WebServiceFeature[]).

而我单独创建新的项目来测试生成的客户端代码却没有这样的错误,所以错误原因在于jar包冲突.....

 

几近周折,终于让我发现,原来javax.xml.ws.Service这个类,即存在于jdk自带的rt.jar中,也存在于我项目引用包jaxws- api.jar,这种情况就是两个jar包中存在包名和类名都完全相同的问题。我需要的是rt.jar中的javax.xml.ws.Service类, 但它却自动引入了jaxws-api.jar的javax.xml.ws.Service类,但是这两个jar包都不能去掉。

所以,只有改变编译器优先选择的jar顺序(这个顺序是可以改变的):在Eclipse中是在Java Build Path-》Order and Export里面,通过"up"/"down"按钮改变顺序,把jaxws-api.jar放在jdk的下面就可以了。

分享到:
评论

相关推荐

    浅谈两个jar包中包含完全相同的包名和类名的加载问题

    当多个Jar包中包含相同的包名和类名时,可能会出现类加载问题。下面我们来讨论这种情况下的类加载问题。 类加载机制 Java中的类加载机制是指Java虚拟机(JVM)在加载类文件时的相关处理过程。类加载机制分为三个...

    FindJar-在jar包中查找包和类

    Java源代码,用于在jar包中查找包和类。

    雷电获取包名与类名.apk

    可以获取安卓系统下,所有软件的包名与类名,用于安卓桥接开发很有帮助,是个很不错的安卓脚本开发工具.直接打开即可使用,真机与模拟器均可使用

    着看所有apk的包名和类名,用于启动或关闭某个app

    了解APK的包名和类名在多个场景下都很有用,例如: - **启动应用**:通过包名和主Activity类名,可以编写代码或使用ADB命令启动特定应用,如`adb shell am start -n &lt;package_name&gt;/&lt;activity_name&gt;`。 - **自动化...

    jar包差异比较器.rar

    在实际应用中,"jar包差异比较器"的使用流程可能是这样的:首先,开发者选择需要比较的两个jar包,然后工具会生成一个报告,列出所有的差异,包括具体修改的类名和资源文件名。开发者可以根据报告快速定位到变化的...

    安卓获取apk包名类名

    2. **反编译APK**:使用工具如JAR解压器或专门的APK分析工具(如Apktool、dex2jar等),可以反编译APK,查看AndroidManifest.xml文件,从中提取包名和主类名。 3. **使用代码方式**:在Android应用内部,可以通过...

    jar包冲突检测工具

    1. **扫描与解析**:工具首先会遍历指定路径下的所有jar包,读取并解析每个jar包的MANIFEST.MF文件,获取包名和类名信息。 2. **类比对**:接着,工具会对比不同jar包中的类,找出那些在多个jar包中都存在的类。 3...

    jar包冲突检测工具.zip

    它的工作原理可能是通过遍历指定路径下的所有jar文件,然后对比每个jar中的类文件,找出具有相同全限定名(即包括包名和类名)但内容不同的类,从而确定冲突的存在。 `CallJars.exe` 可能是该工具的执行文件,它是...

    android调用第三方程序,需要包名、类名

    对于直接启动特定的Activity,你可以使用Intent的`setComponent()`方法,传入一个ComponentName对象,该对象包含包名和类名。ComponentName的构造函数需要包名和类名的字符串形式。 5. **启动Intent** 创建并设置...

    自动获取android包名类名

    在Android开发过程中,获取应用程序的包名和类名是一项常见的任务。这有助于调试、测试以及实现自动化脚本。Ubuntu作为一个流行的Linux发行版,为开发者提供了命令行工具来方便地完成这项工作。本篇文章将详细解释...

    jarjar-方便Java打包工具,自定义修改jar包包名

    2. **运行jarjar**:通过命令行调用jarjar-1.4.jar,指定规则文件、输入JAR和输出JAR,例如`java -jar jarjar-1.4.jar process rules.txt input.jar output.jar`。 3. **检查结果**:生成的output.jar会按照规则文件...

    java打包成jar并执行jar包中指定的main方法

    其中,[jar 文件名] 是要执行的 Jar 文件的名称,[包名] 是要执行的类所在的包名,[类名] 是要执行的类名,[参数] 是要传入的参数。 例如,要执行名为 "mplus-service-jar-with-dependencies.jar" 的 Jar 文件中的 ...

    Jar包问题查找脚本

    此脚本在Jar包中的包名和类名中查找某一关键字,并高亮显示匹配的Jar包名称和路径, 解决问题 多用于定位java.lang.NoClassDefFoundError和java.lang.ClassNotFoundException的问题,以及类版本重复或者冲突的问题等...

    Android包名类名查看

    这款名为“Android包名类名查看”的小应用,其核心功能是帮助用户获取设备上已安装应用的包名和类名信息。这对于开发者来说非常有用,他们可能需要这些信息来实现如调试、权限检查、自动化测试或分析竞品应用等功能...

    根据class类名在所有Jar包文件中查找class类路径以及jar名字

    1.搜索分析指定路径下所有jar包中是否存在指定文件。譬方说要在jar包中查询某个**.class文件。用户可以不用打开Jar包,直接输入路径和要查找的文件即可搜索。 2.列出指定路径下的所有Jar包文件 3.除了对Jar包进行...

    jar包修改神器.rar

    这个压缩包文件提供了工具和资源,帮助开发者修改jar包内的package包名,从而避免不同版本jar包之间的冲突。 核心工具是`jarjar-1.4.jar`,这是一个开源工具,专门用于重命名或移动Java类,以便在一个项目中整合多...

    jar包问题排查脚本.zip

    总结起来,`find-jar-field`、`grep-jar`和`jar-conflict-detect`这三个脚本是Java开发者必备的工具,它们可以帮助我们快速定位和解决与jar包相关的各种问题,包括类找不到、jar包冲突等。掌握这些工具的使用,对于...

    osgi解决不同版本jar包冲突的demo

    OSGi(Open Services Gateway Initiative)是一种模块化系统和Java服务框架,它允许在单个JVM上运行多个版本的相同库或服务,从而解决了不同版本jar包冲突的问题。本示例通过一个名为“myself”的工程,展示了如何...

    在jar包下找class文件

    此外,它还能帮助定位可能存在的类加载问题,比如类冲突或者找不到类的异常。 在实际应用中,可能会遇到的一些场景包括: - **调试**:当遇到运行时错误,比如`ClassNotFoundException`,可以快速定位问题是否源于...

    android查看包名类名工具

    这是一个android工程,可导入eclipse直接编译运行,功能是显示出android设备上的所有程序以及它们完整包名,主类名,图标和名称。以列表形式显示,只需写一个打开activity的方法就可以打开系统中安装了的apk,基于此...

Global site tag (gtag.js) - Google Analytics