Avatar billede niwikr Nybegynder
16. september 2005 - 14:02 Der er 15 kommentarer og
1 løsning

decompile class file

Hej

Jeg har mistet java filen og dermed koden.

Men har stadig class filen. Er der nogen der ved om man kan decompile og evt. hvordan
Avatar billede martinhrj Nybegynder
16. september 2005 - 14:14 #1
Der findes flere decompilere. Bla. et der hedder DJ Java Decompiler. Du kan sikkert finde det på google.
Avatar billede arne_v Ekspert
16. september 2005 - 14:32 #3
Jeg bruger selv DJ og den er glimrende, men jeg kan ikke lide licens betingelserne
på de nyeste versioner, så jeg kører en gammel version.

Og command line decompileren den bruger (JAD) er ikke opdateret i årevis, så man
mangler ikke noget
Avatar billede niwikr Nybegynder
16. september 2005 - 14:41 #4
Fandt selv JAD

Det virekr upåklageligt. HAr selvfølgelig skiftet variabelanvne ud og æøå har den det ikke så godt med. Men ellers er det bare sweat.
Avatar billede arne_v Ekspert
16. september 2005 - 14:45 #5
har du testet java 1.5 med 1.5 specifikke features (enum, generics etc.) ?
Avatar billede martinhrj Nybegynder
16. september 2005 - 14:56 #6
Siden generics ikke har noget med runtime at gøre, skulle man ikke tro den kan genskabe det.
Avatar billede arne_v Ekspert
16. september 2005 - 15:11 #7
jeg prøvede lige - den decompiler fint både enum og generics - den generede kode
ser ikke køn ud, men ....
Avatar billede martinhrj Nybegynder
16. september 2005 - 15:15 #8
Mystisk. Så må den jo gemme det på en eller anden måde. Jeg havde forstået, at al generics blev oversat til casts osv før compileringen... Men der er selvfølgelig også mulighed for, at jeg husker forkert :)
Avatar billede arne_v Ekspert
16. september 2005 - 15:16 #9
den blev ikke decompilet til enum/generics men stadig til valid kode
Avatar billede martinhrj Nybegynder
16. september 2005 - 15:25 #10
Ok, det forklarer det :)
Avatar billede simonvalter Praktikant
16. september 2005 - 16:04 #11
arne hvad er der med licens betingelserne?
Avatar billede arne_v Ekspert
16. september 2005 - 17:26 #12
sorry - det er ikke licens

man skal registrere sig via nogle som kalder sig Protexis

og de virker meget kommercielle

jeg fik markant dårlige fornemmelser og foretrak min gamnle version som ikke
skulle registreres

[jeg har ikke noget imod at registrere mig hos udvikleren, men de der
Protexis lyder lidt for smarte]
Avatar billede simonvalter Praktikant
16. september 2005 - 17:41 #13
ok det skjuler de godt på den officielle hjemmeside.
Avatar billede arne_v Ekspert
16. september 2005 - 17:42 #14
jep

du opdager det først når du har downloadet, installeret og starter første gang
Avatar billede arne_v Ekspert
16. september 2005 - 21:48 #15
og lige et eksempel

original:

public class TempTest {
    public static void main(String[] args) {
        System.out.println(MinMax.min(1,3));
        System.out.println(MinMax.max(1,3));
        int v = MinMax.max(5,3);
        System.out.println(v);
    }
}

class MinMax {
    public static <T extends Comparable<T>> T min(T a, T b) {
        return a.compareTo(b) < 0 ? a : b;
    }
    public static <T extends Comparable<T>> T max(T a, T b) {
        return a.compareTo(b) > 0 ? a : b;
    }
}

efter compile og decompile:

import java.io.PrintStream;

public class TempTest
{

    public TempTest()
    {
    }

    public static void main(String args[])
    {
        System.out.println(MinMax.min(Integer.valueOf(1), Integer.valueOf(3)));
        System.out.println(MinMax.max(Integer.valueOf(1), Integer.valueOf(3)));
        int i = ((Integer)MinMax.max(Integer.valueOf(5), Integer.valueOf(3))).intValue();
        System.out.println(i);
    }
}

class MinMax
{

    MinMax()
    {
    }

    public static Comparable min(Comparable comparable, Comparable comparable1)
    {
        return comparable.compareTo(comparable1) >= 0 ? comparable1 : comparable;
    }

    public static Comparable max(Comparable comparable, Comparable comparable1)
    {
        return comparable.compareTo(comparable1) <= 0 ? comparable1 : comparable;
    }
}
Avatar billede arne_v Ekspert
04. november 2005 - 20:24 #16
tid at få afsluttet her ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester