我正在尝试在mac上反编译MCP v1.8.8,但是当我运行decompile.sh文件时,我得到了这个错误: error: Source option 6 is no longer supported. Use 7 or later.
error: Target option 6 is no longer supported. Use 7 or later. 如果我在eclipse > Client中查看,文件夹是空的,所以我什么也做不了 这是完整的日志 codergautam@Coders-Air mcp918 % bash decompile.sh
我不是一个有经验的程序员,我对java也知之甚少。
我有一个用java1.5编译的有10年历史的小java软件。很明显,我没有源代码。这个软件有一个小bug,所以我用了一个java反编译器,找到了这个bug。解决方案很简单,但是我在重新编译这个类时遇到了困难。我正在使用java1.5.0_12重新编译。
不幸的是,编译器似乎在代码中遇到了一些错误。
it/cp/pacm/dbsync/Synchronizer.java:234: possible loss of precision
found : int
required: char
/* 287 */ c = Intege
我知道这是一个很常见的问题,这里有一个很好的话题:
但我要求的是一些不同的东西,不是绝对的保护,至少是一些防止反编译的基本保护。
我用一些.jar文件尝试过像JD和Jode这样的反编译程序,它们无法对所有的.java类进行反编译,在其中许多类中,我得到了一个错误,还有许多只是一个非常基本的代码。
他们是如何保护jar文件不受反编译器的影响?当我在jar中使用相同的反编译器时,所有的类都会使用完整的细节进行解压缩。
基本上,我的问题是,是什么导致了这些反编译程序的错误?是因为java类是加密的吗?
编辑:
我注意到Jode在一些java文件中显示了这个错误:
Exception while d
在java类java.util.Locale中,我发现关键字瞬态标记了一个方法。
public final class Locale
implements Cloneable, Serializable
{
private static class LocaleNameGetter
implements sun.util.LocaleServiceProviderPool.LocalizedObjectGetter
{
public transient String getObject(LocaleNameProvider local
获取了一个java类并将其转换为bytecode。我的问题是,基于以下内容,它会被_L2接受吗?我不会这么认为(我读了另一篇StackOverflow文章,说它永远不会是空的,但我现在找不到它)
其次,如果它真的转到_L1,它就会将j设置为零……但是下一步是什么呢?它会继续使用_L7吗?
如果它真的命中了_L2,它会从那里走向何方?
public class testing
{
public static volatile void main(String args[])
{
local;
Object obj;
int i;
我正在为教授仿制药做一个很大的例子。一组类和接口,它们模仿Java中的集合类。以下是其中一个源文件:
package edu.brandeis.cosi12b.listdemo;
public class ArrayList<E extends Comparable<E>> extends AbstractList<E> implements List<E> {
private E[] list;
private int size;
private int capacity;
public ArrayList() {
在的启发下,我开始了一个小小的研究。
我能够确定,使用原语,前缀++i只是由编译器重写到i++:
在此之前:
public class PrefixIncrement {
public static void main(String args[]) {
for(Integer i = 0; i < 100; ++i) {
System.out.println(i);
}
}
}
用jd 0.36解压缩:
import java.io.PrintStream;
public class PrefixIncrem
我收到这个错误:
java.lang.VerifyError: Bad <init> method call in method FooBar.<init>(I)V at offset 2
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
at java.lang.Class.getConstructor0(Class.java:2714)
这个问题是由我的好奇心驱动的,所以我想得到一个完整的答案,而不是简单的“是”或“不是”。
让我们考虑一下这段代码:
// Is stored in util files and used to omit annoying (this as? Smth)?.doSmth()
inline fun <reified T> Any?.cast(): T? {
return this as? T
}
class PagingOnScrollListener(var onLoadMore: (currentPage: Int, pageSize: Int) -> Unit)