2016-09-29 6 views
0

私は端末にこれを持っています。これをホームディレクトリから呼び出すと、問題なく動作します。しかし、これをサブディレクトリCPS3498に入れてコンパイルしても、エラーはありません。私は次のように、それは私にこのエラーディレクトリでコンパイルするJavaコードを取得する方法

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 

コードを与えるプログラムを実行するために、java home/student/pshivam/CPS3498/encryptをしようとすると。あなたがencryptクラスに指定されたパッケージを持っていない場合は

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

このソースファイルにはパッケージが含まれていますか? –

+0

@TimBiegeleisen私はパッケージを持っていません – Shiv

+0

私はこれに似ているが、ただ復号化する別のコードを持っています – Shiv

答えて

0

、あなたは.classファイルが置かれているディレクトリからjava encryptを使用して、任意のディレクトリから実行することができるはずです。

次のパッケージ指定した場合:(Linuxを使用している場合は、おそらく\)あなたがhome上記ルートディレクトリから建設する

package home.student.pshivam.CPS3498 

を。その後、すなわち、キャピタル・文字で始まるencryptではなく、Encryptを使用する必要がありますJavaでそのクラス名を規則をされて命名、ちなみに

java home.student.pshivam.CPS3498.encrypt 

を使用して、ルートディレクトリからプログラム再びを実行します。

関連する問題