Προς το περιεχόμενο

Μετατροπή class σε java


empeiros1987

Προτεινόμενες αναρτήσεις

Δημοσ.

έχω ένα αρχείο .class το οποίο δουλεύει κανονικότατα σαν μέρος ενός ολόκληρου προγράμματος.

 

Μετατρέπω αυτό το .class σε .java.

Πριν το "πειράξω" το αρχείο .java μου εμφανίζει 2 λάθη. Όταν το πειράζω πάλι μου εμφανίζει τα ίδια λάθη.

 

Κάνοντας το λοιπόν compile δεν μου το μετατρέπει εκ νέου σε class αρχείο έτσι ώστε να το τοποθετήσω πάλι στο πρόγραμμα.

 

Αυτό που θέλω δλδ είναι να μου μετατρέψει κάποιος αυτό το αρχείο σε .class.

 

Μπορεί καποιος να με βοηθήσει?

 

Ευχαριστώ πολύ..CheckSequenceD.zip

Δημοσ.

το αρχειο που εδωσες ειναι αυτο

>
package gr.aueb.dds.exercise;

import java.io.PrintStream;
import java.security.AlgorithmParameters;
import javax.crypto.Cipher;
import javax.crypto.Mac;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

class CheckSequence
{

   private String courseName;
   private int exerciseId;
   private int studentId;
   private int grade;
   private static byte keyData[] = {
       -27, 77, 57, -108, -49, 99, -67, 28, 91, -82,
       -14, -36, -97, -7, 18, 57
   };
   private static byte iv[] = {
       87, -120, 119, -107, -103, -109, -55, 51
   };

   CheckSequence(String s, int i, int j, int k)
   {
       courseName = s;
       exerciseId = i;
       studentId = j;
       grade = 10;
   }

   private String asSentence()
   {
       return (new StringBuilder()).append("Course: ").append(courseName).append(" Exercise: ").append((new Integer(exerciseId)).toString()).append(" Student: ").append((new Integer(studentId)).toString()).append(" Grade: ").append((new Integer(grade)).toString()).toString();
   }

   private byte[] getBytes()
   {
       return asSentence().getBytes("US-ASCII");
       Exception exception;
       [color=Red]exception;  <-----εεε??[/color]
       System.err.println((new StringBuilder()).append("Error: ").append(exception).toString());
       return new byte[0];
   }

   byte[] getMac()
   {
       SecretKeySpec secretkeyspec;
       SecretKeySpec secretkeyspec1;
       for(int i = 0; i < keyData.length; i++)
       {
           keyData[i] ^= 0x5a;
       }

       secretkeyspec = new SecretKeySpec(keyData, "HmacMD5");
       secretkeyspec1 = new SecretKeySpec(keyData, "Blowfish");
       Cipher cipher;
       Mac mac;
       AlgorithmParameters algorithmparameters = AlgorithmParameters.getInstance("Blowfish");
       IvParameterSpec ivparameterspec = new IvParameterSpec(iv);
       algorithmparameters.init(ivparameterspec);
       cipher = Cipher.getInstance("Blowfish/CBC/PKCS5Padding");
       cipher.init(1, secretkeyspec1, algorithmparameters);
       mac = Mac.getInstance("HmacMD5");
       mac.init(secretkeyspec);
       return mac.doFinal(cipher.doFinal(getBytes()));
       Exception exception;
       [color=Red]exception; <-----εεε??[/color]
       System.err.println((new StringBuilder()).append("Error: ").append(exception).toString());
       System.exit(1);
       return "".getBytes();
   }

}

δε μπορεις να δεις το λαθος μονος σου;

Αφου στο λεει ο ιδιος ο compiler

 

Σημ. δεν εχω java compiler στη δουλεια.......

Δημοσ.

C:\Users\Γουρνάς\Desktop\CheckSequence.java:42: not a statement

exception;

^

C:\Users\Γουρνάς\Desktop\CheckSequence.java:69: not a statement

exception;

^

2 errors

 

Tool completed with exit code 1

 

το βγάζει και πριν και μετά αφου το πειράξω το πρόγραμμα.

παρόλα αυτά το .class το αρχικό που έχω δουλεύει ρολόι.

 

---------- Το μήνυμα προστέθηκε στις 16:50 ----------

 

και τι να κάνω ακριβώς? να σβήσω αυτή την εντολή?αν το κάνω μου βγάζει μετά πολλά λάθη..

Δημοσ.

προφανως δουλευει ρολοι, απλα ο decompiler δε σου βγαζει καλο κωδικα

 

το να γραψει καποιος

>exception;

δε σημαινει τιποτα, δε κανει τιποτα, αυτο σου λεει ο compiler

 

το μονο που μπορω να φανταστω ειναι πως εκει χρειαζεται να βαλεις καποια απο τα statements της getMAC μεσα σε ενα try/catch blok

 

Αν δεν ξερεις τιποτε απο exceptions, τοτε παρε τη μπακαλικη οδο και αφαιρεσε εντελως το exception......

 

px

>
private byte[] getBytes()
   {
       return asSentence().getBytes("US-ASCII");        
   }

kai

>
byte[] getMac()
   {
       SecretKeySpec secretkeyspec;
       SecretKeySpec secretkeyspec1;
       for(int i = 0; i < keyData.length; i++)
       {
           keyData[i] ^= 0x5a;
       }

       secretkeyspec = new SecretKeySpec(keyData, "HmacMD5");
       secretkeyspec1 = new SecretKeySpec(keyData, "Blowfish");
       Cipher cipher;
       Mac mac;
       AlgorithmParameters algorithmparameters = AlgorithmParameters.getInstance("Blowfish");
       IvParameterSpec ivparameterspec = new IvParameterSpec(iv);
       algorithmparameters.init(ivparameterspec);
       cipher = Cipher.getInstance("Blowfish/CBC/PKCS5Padding");
       cipher.init(1, secretkeyspec1, algorithmparameters);
       mac = Mac.getInstance("HmacMD5");
       mac.init(secretkeyspec);
       return mac.doFinal(cipher.doFinal(getBytes()));
       
   }


 

Απλα να ξρεις πως πλεον ο κωδικας σου θα ειναι πλεον πολυ ασταθης σε περιπτωση run-time error

Δημοσ.

ευχαριστώ!θα το δοκιμάσω!να σαι καλά!

 

---------- Το μήνυμα προστέθηκε στις 17:03 ----------

 

φίλε δυστυχώς και πάλι δε δουλεύει..

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...