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

尝试重新编译最旧的java软件

梁学真
2023-03-14

我不是一个有经验的程序员,我对Java的了解很少。

it/cp/pacm/dbsync/Synchronizer.java:234: possible loss of precision
found   : int
required: char
/*  287 */       c = Integer.parseInt(strLdapPort);

代码是

/*      */     char c;
...
/*  287 */       c = Integer.parseInt(strLdapPort);

我用铸造把它修好了。

/*  287 */       c = (char)Integer.parseInt(strLdapPort);

但还有一个问题我无法解决

# javac -cp ../software.jar it/cp/pacm/dbsync/Synchronizer.java

software.jar是整个包

it/cp/pacm/dbsync/Synchronizer.java:415: cannot find symbol
symbol  : class E
location: class it.cp.pacm.dbsync.Synchronizer
/*  497 */       for (Iterator<E> iterator = removedEntries.keySet().iterator(); iterator.hasNext(); ) {
                               ^
it/cp/pacm/dbsync/Synchronizer.java:463: incompatible types
found   : java.util.Iterator<java.lang.Object>
required: java.util.Iterator<java.lang.String>
/*  552 */     for (Iterator<String> iterator1 = newAttributes.keySet().iterator(); iterator1.hasNext(); ) {
                                                                                ^
it/cp/pacm/dbsync/Synchronizer.java:475: incompatible types
found   : java.util.Iterator<java.lang.Object>
required: java.util.Iterator<java.lang.String>
/*  571 */     for (Iterator<String> i = oldAttributes.keySet().iterator(); i.hasNext(); ) {
                                                                        ^
it/cp/pacm/dbsync/Synchronizer.java:673: unexpected type
found   : byte
required: reference
/*  816 */     Arrays.sort(values, (Comparator<? super byte>)new ByteArrayComparator());
                                                       ^
Note: it/cp/pacm/dbsync/Synchronizer.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
4 errors
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
Synchronizer$DEFAULTS.class
Synchronizer$DNOrder.class
Synchronizer$EntryOrder.class
Synchronizer$SETTINGS.class
Synchronizer.class

谢谢你

共有1个答案

万涵亮
2023-03-14

在尝试反编译/重新编译之前,您应该对Java有更多的了解:特别是因为反编译程序可能会在这个过程中失败,并生成看似有效但实际上无效的代码。它应该用于分析而不是修复现有代码。

此外,不同的反编译程序产生不同的结果:Eclipse增强类反编译程序使用了几种类型的反编译程序。

对于您的错误:

it/cp/pacm/dbsync/Synchronizer.java:415: cannot find symbol
symbol  : class E
location: class it.cp.pacm.dbsync.Synchronizer
/*  497 */       for (Iterator<E> iterator = removedEntries.keySet().iterator(); iterator.hasNext(); ) {
<E> void foobar(Map<E, ?> removedEntries) {
  for (Iterator<E> iterator = removedEntries.keySet().iterator(); iterator.hasNext(); ) {
    // ...
  }
}
it/cp/pacm/dbsync/Synchronizer.java:463: incompatible types
found   : java.util.Iterator<java.lang.Object>
required: java.util.Iterator<java.lang.String>
/*  552 */     for (Iterator<String> iterator1 = newAttributes.keySet().iterator(); iterator1.hasNext(); ) {

同样的问题,而不是同样的原因:您的反编译程序可能无法推断泛型类型中泛型的类型。例如:newattributes可能只是定义为map,但它应该是map

it/cp/pacm/dbsync/Synchronizer.java:673: unexpected type
found   : byte
required: reference
/*  816 */     Arrays.sort(values, (Comparator<? super byte>)new ByteArrayComparator());

简单:使用字节而不是字节

 类似资料:
  • 问题内容: 我进行了全新的OSX 10.9.3全新安装并安装了pip,然后执行了 两次安装似乎都非常令人满意,并且运行没有任何错误(尽管有不计其数的警告)。当我尝试使用导入熊猫运行python脚本时,出现以下错误: 如何解决此错误并使熊猫正确加载? 问题答案: 您可以安装熊猫的早期版本。 在我的情况下,它解决了问题…

  • 问题内容: 导入熊猫时,会出现以下错误: 我正在运行Python 2.7.5,Pandas 0.14.1和Numpy 1.9.0。我尝试使用pip安装两种版本的旧版本,每次都会出现重大错误。我是Python的初学者,因此这里的任何帮助将不胜感激。:) 编辑:运行OS X 10.9.4 编辑2:这是我卸载并重新安装Numpy + Pandas,然后运行.py文件的视频的链接:https ://www

  • 我试图编译一个不是我开发的旧的原生Android应用程序,但我面临以下错误: 检索项目的父项时出错:未找到与给定名称“android:文本外观.材料.小部件.按钮.反向”匹配的资源。 检索项目的父项时出错:未找到与给定名称“android:Widget”匹配的资源。'材质.纽扣.彩色'。 任务“:androidLib:processDebugResources”的执行失败。com.android.

  • 我测试了标准的hello。java和你好。运行在Ubuntu12.04服务器上的gwan服务器附带的c。G-WAN 4.3.1 64位(2013年3月1日17:36:39) 一旦我和关一起 sudo./gwan-d 我还注意到在没有daemon选项的情况下也有同样的行为。 然后浏览到192.168.0.2:8080 /?hello.c我得到预期的输出“你好,ANSI C!我更改了hello.c中的

  • 我有这个错误 org/apache/camel/CamelContextAware由最新版本的Java运行时(类文件版本55.0)编译,该版本的Java运行时仅识别高达52.0的类文件版本 当我试图在Spring Boot Camel应用程序中编译maven时。留档中没有解释此错误的痕迹,我唯一发现的是一个非常短的javadoc。你能帮我吗?

  • 问题内容: 如何批量反编译许多类文件? 问题答案: JD-Gui使您的生活变得轻松,它还具有一个eclipse插件 编辑:更新了该工具的最新网址