Storyyeller / Krakatau

Java decompiler, assembler, and disassembler
GNU General Public License v3.0
1.95k stars 219 forks source link

ClassNotFoundException: java/lang/IllegalMonitorStateException #160

Closed zaoqi closed 5 years ago

zaoqi commented 5 years ago

    // Traceback (most recent call last):
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/java/javaclass.py", line 37, in _getMethod
    //     graph = cb(method) if method.code is not None else None
    //   File "Krakatau/decompile.py", line 63, in makeGraph
    //     s.abstractInterpert()
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/ssa/graph.py", line 300, in abstractInterpert
    //     out = constraints.meet(*inputs)
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/ssa/constraints/__init__.py", line 22, in meet
    //     return cons[0].meet(*cons[1:])
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/ssa/constraints/obj_c.py", line 116, in meet
    //     types = TypeConstraint.meet(*(c.types for c in cons))
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/ssa/constraints/obj_c.py", line 79, in meet
    //     return TypeConstraint.reduce(cons[0].env, supers, exact)
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/ssa/constraints/obj_c.py", line 45, in reduce
    //     newexact = [x for x in exact if not isAnySubtype(env, x, newsupers)]
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/ssa/constraints/obj_c.py", line 10, in isAnySubtype
    //     return any(objtypes.isSubtype(env,x,y) for y in seq)
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/ssa/constraints/obj_c.py", line 10, in <genexpr>
    //     return any(objtypes.isSubtype(env,x,y) for y in seq)
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/ssa/objtypes.py", line 54, in isSubtype
    //     return isBaseTClass(x) and isBaseTClass(y) and env.isSubclass(xname, yname)
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/environment.py", line 36, in isSubclass
    //     name1 = self._getSuper(name1)
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/environment.py", line 18, in _getSuper
    //     return self.getClass(name).supername
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/environment.py", line 24, in getClass
    //     result = self._loadClass(name)
    //   File "/home/1828_sandbox/src/the-language/core/arch/java/Krakatau/Krakatau/environment.py", line 90, in _loadClass
    //     raise ClassLoaderError('ClassNotFoundException', name)
    // ClassLoaderError: 
    // ClassNotFoundException: java/lang/IllegalMonitorStateException
Storyyeller commented 5 years ago

You need to pass the JRT to Krakatau with the -path argument.