2016-09-29 1 views
0

Ich habe dies in einem Terminal. Wenn ich das aus dem Home-Verzeichnis anrufe gibt es keine Probleme es funktioniert einwandfrei. Aber wenn ich das in ein Unterverzeichnis CPS3498 stelle und es kompiliere gibt es keinen Fehler. Wenn ich versuche, java home/student/pshivam/CPS3498/encrypt zu tun, um das Programm auszuführen es mir diesen FehlerWie bekomme ich Java-Code in ein Verzeichnis kompilieren

Exception in thread "main" java.lang.NoClassDefFoundError: /home/student/pshivam/CPS3498/encrypt 
Caused by: java.lang.ClassNotFoundException: .home.student.pshivam.CPS3498.encrypt 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: /home/student/pshivam/CPS3498/encrypt. Program will exit 

-Code gibt wie folgt.

import java.lang.ClassNotFoundException; 
    import java.io.BufferedReader; 
    import java.io.BufferedWriter; 
    import java.io.File; 
    import java.io.FileReader; 
    import java.io.FileWriter; 
    import java.io.IOException; 

    public class encrypt { 

     public static void main(String[] args) throws IOException { 
      try { 
       File file = new File("/home/student/pshivam/CPS3498/letter.txt"); 
       FileReader fileReader = new FileReader(file); 
       BufferedReader bufferedReader = new BufferedReader(fileReader); 
       StringBuffer stringBuffer = new StringBuffer(); 
       String line; 
       while ((line = bufferedReader.readLine()) != null) { 
        stringBuffer.append(line); 
        stringBuffer.append("\n"); 
       } 
       fileReader.close(); 
       for(int i = 0; i<stringBuffer.length(); i++){ 
        int encrypt = 0; 
        encrypt = (int)stringBuffer.charAt(i); 
        encrypt = encrypt * 9; 
        stringBuffer.setCharAt(i, (char)encrypt); 
        File message = new File("/home/student/pshivam/CPS3498/secret.txt"); 
        try 
        { 
         message.createNewFile(); 
         FileWriter msgFile = new FileWriter(message); 
         BufferedWriter msgBuff = new BufferedWriter(msgFile); 
         msgBuff.write(stringBuffer.toString()); 
         msgBuff.close(); 
        } 
        finally 
        { 

        } 
       } 

      } finally{ 

      } 


     } 
    } 
+0

Hat diese Quelldatei ein Paket? –

+0

@TimBiegeleisen Ich habe kein Paket – Shiv

+0

Ich habe einen anderen Code, der dem ähnlich ist, aber nur entschlüsselt – Shiv

Antwort

0

Wenn Sie die encrypt Klasse angegeben nicht ein Paket haben, dann sollten Sie in der Lage sein, es aus jedes Verzeichnis aus dem Verzeichnis mit java encrypt zu laufen, wo die .class Datei befindet.

Wenn Sie das folgende Paket angegeben hatte:

package home.student.pshivam.CPS3498 

dann Sie aus dem Wurzel Verzeichnis über home bauen würde (vermutlich \ wenn Sie Linux verwenden). Sie würden dann das Programm ausführen wieder aus dem Stammverzeichnis

java home.student.pshivam.CPS3498.encrypt 

Durch die Art und Weise verwenden, Konvention in Java zu benennen, dass Klassennamen mit einem captial Buchstaben beginnen sollte, das heißt verwenden Encrypt statt encrypt.

Verwandte Themen