Δημοσιεύτηκε: 25 Μαρ 2009, 21:22
Αυτή τη φορά ψάχνω για ένα καλό decompiler java για να μετατρέψω τα *.class σε *.java ώστε να μπορώ να τα επεξεργαστώ και να παράγω κάτι δικό μου και να μπορώ να το κάνω compile χωρίς να υπάρχει πρόβλημα στο αρχικό class που δανείστηκα.
Αρχικά βρήκα τον jadclipse που είναι plugin για το eclipse. Ακολούθησα το tutorial του όμως τελικά δε κατάφερα να το κάνω να δουλεύει.
Έτσι λοιπόν αποφάσισα να βρω κάποιο άλλο πρόγραμμα που να μην είναι plug in σε κάτι άλλο.
Βρήκα το jd-gui (απλό και λητό και με gui....) δυστυχώς τα "καλά" σταματούν εδώ καθώς κάνοντας decompile την αρχική μου class σε java και στη συνέχεια ξανά compile δε μπορούσα να παράγω το ίδιο class με πριν (στην περίπτωσή μου είναι ένα applet, όπου δεν ξεκινούσε καν)
Τελικά ανακάλυψα το jode http://jode.sourceforge.net/download.php . Στο τρέχον site υπάρχει και σε applet ο decompiler. Ο οποίος δουλεύει μια χαρά. Έτσι λοιπόν αποφάσισα να το εγκαταστήσω και στο μηχάνημά μου.
Κατέβασα τα jar και tar.gz για αυτό. Διάβασα το readme και το install.... όμως κόλλησα στη διαδικασία. όταν εκτελώ το configure μου εμφανίζεται το παρακάτω σφάλμα....
checking for /usr/lib/java/lib/classes.zip... no
checking for /usr/lib/java/lib/rt.jar... no
checking for /usr/lib/java/jre/lib/classes.zip... no
checking for /usr/lib/java/jre/lib/rt.jar... no
checking for /usr/lib/java/shared/classes.zip... no
checking for /usr/lib/java/shared/rt.jar... no
checking for jikes... no
checking for unzip... /usr/bin/unzip
checking for java.lang.Object... no
configure: error: Please specify location of core java class library <---- ???????
μπορεί κάποιος να καταλαβει τι είναι????
ο κώδικας του configure στο αντίστοιχο σημείο είναι:
echo $ac_n "checking for java.lang.Object""... $ac_c" 1>&6
echo "configure:1827: checking for java.lang.Object" >&5
if (IFS=":"
clazz=`echo java.lang.Object | sed -e 's/\./\//g' -e 's/\(.*\)/\1.class/'`
myclasspath=$CLASSLIB;
for path in $myclasspath; do
if test -d $path; then
if test -f $path/$clazz; then
exit 0
fi
elif CLASS_CHECK $path $clazz ; then
exit 0
fi
done;
exit 1)
then
echo "$ac_t""yes" 1>&6
else
echo "$ac_t""no" 1>&6
{ echo "configure: error: Please specify location of core java class library" 1>&2; exit 1; }
fi
echo $ac_n "checking for java.lang.ref.WeakReference""... $ac_c" 1>&6
echo "configure:1851: checking for java.lang.ref.WeakReference" >&5
if (IFS=":"
clazz=`echo java.lang.ref.WeakReference | sed -e 's/\./\//g' -e 's/\(.*\)/\1.class/'`
Αρχικά βρήκα τον jadclipse που είναι plugin για το eclipse. Ακολούθησα το tutorial του όμως τελικά δε κατάφερα να το κάνω να δουλεύει.
Έτσι λοιπόν αποφάσισα να βρω κάποιο άλλο πρόγραμμα που να μην είναι plug in σε κάτι άλλο.
Βρήκα το jd-gui (απλό και λητό και με gui....) δυστυχώς τα "καλά" σταματούν εδώ καθώς κάνοντας decompile την αρχική μου class σε java και στη συνέχεια ξανά compile δε μπορούσα να παράγω το ίδιο class με πριν (στην περίπτωσή μου είναι ένα applet, όπου δεν ξεκινούσε καν)
Τελικά ανακάλυψα το jode http://jode.sourceforge.net/download.php . Στο τρέχον site υπάρχει και σε applet ο decompiler. Ο οποίος δουλεύει μια χαρά. Έτσι λοιπόν αποφάσισα να το εγκαταστήσω και στο μηχάνημά μου.
Κατέβασα τα jar και tar.gz για αυτό. Διάβασα το readme και το install.... όμως κόλλησα στη διαδικασία. όταν εκτελώ το configure μου εμφανίζεται το παρακάτω σφάλμα....
checking for /usr/lib/java/lib/classes.zip... no
checking for /usr/lib/java/lib/rt.jar... no
checking for /usr/lib/java/jre/lib/classes.zip... no
checking for /usr/lib/java/jre/lib/rt.jar... no
checking for /usr/lib/java/shared/classes.zip... no
checking for /usr/lib/java/shared/rt.jar... no
checking for jikes... no
checking for unzip... /usr/bin/unzip
checking for java.lang.Object... no
configure: error: Please specify location of core java class library <---- ???????
μπορεί κάποιος να καταλαβει τι είναι????
ο κώδικας του configure στο αντίστοιχο σημείο είναι:
echo $ac_n "checking for java.lang.Object""... $ac_c" 1>&6
echo "configure:1827: checking for java.lang.Object" >&5
if (IFS=":"
clazz=`echo java.lang.Object | sed -e 's/\./\//g' -e 's/\(.*\)/\1.class/'`
myclasspath=$CLASSLIB;
for path in $myclasspath; do
if test -d $path; then
if test -f $path/$clazz; then
exit 0
fi
elif CLASS_CHECK $path $clazz ; then
exit 0
fi
done;
exit 1)
then
echo "$ac_t""yes" 1>&6
else
echo "$ac_t""no" 1>&6
{ echo "configure: error: Please specify location of core java class library" 1>&2; exit 1; }
fi
echo $ac_n "checking for java.lang.ref.WeakReference""... $ac_c" 1>&6
echo "configure:1851: checking for java.lang.ref.WeakReference" >&5
if (IFS=":"
clazz=`echo java.lang.ref.WeakReference | sed -e 's/\./\//g' -e 's/\(.*\)/\1.class/'`