2016-04-19 4 views
0

Ich habe Java von Command Prompt in Win 7 Ultimate mit nur Dateiname (Ex. javac program.java und Java-Programm) vor dem Ausführen von Java durch Notepad ++ Skript ausgeführt.Java Konnte nicht Hauptklasse Fehler nach dem Ausführen von Notepad ++

Nach der Verwendung von Notepad ++ Skript und Update von Java auf Version jdk-8u77-windows-i586 konnte ich nur Java nur von Notepad ++ ausführen. Ich bekomme

Error: Could not find or load main class CopyFile

, wenn ich es in Eingabeaufforderung. Aber ich kann 'javac' in der Befehlszeile verwenden, um das Java-Programm zu kompilieren.

Unten ist mein Notepad ++ Skript, das Java-Programm darin ausführt.

NPP_SAVE 
cd "$(CURRENT_DIRECTORY)" 
"C:\Program Files (x86)\Java\jdk1.8.0_77\bin\javac" $(FILE_NAME) 
"C:\Program Files (x86)\Java\jdk1.8.0_77\bin\java" -classpath "$(CURRENT_DIRECTORY)" "$(NAME_PART)" 

Ich habe Umgebungsvariablen überprüft und alle sind gesetzt. Ich habe sie unten angegeben.

CLASSPATH

C:\Program Files (x86)\Java\jdk1.8.0_77\bin;C:\Program Files (x86)\Java\jre1.8.0_77\bin 

JAVA_HOME

C:\Program Files (x86)\Java\jdk1.8.0_77 

Pfad

C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Java\jdk1.8.0_77\bin;C:\Program Files (x86)\Java\apache-maven-3.3.9\bin;C:\xampp\ImageMagick-6.9.1-Q16;C:\Python27\;C:\Python27\Scripts;C:\Python27\DLLs;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;D:\Dhay\Tasks by me\Firefox addon job\addon-sdk-1.17\bin;C:\Program Files\MySQL\MySQL Server 5.1\bin;C:\Program Files\Google\Cloud SDK\google-cloud-sdk\bin;C:\Program Files (x86)\Common Files\lenovo\easyplussdk\bin;C:\Program Files (x86)\QuickTime\QTSystem\ 

Unten ist die Java-Datei.

import java.io.*; 
class CopyFile 
{ 
    public static void main (String args[]) throws IOException 
    { 
     int i; 
     FileInputStream fin = null; 
     FileOutputStream fout = null; 
     if(args.length != 2) 
     { 
      System.out.println("Usage: CopyFile from to");; 
      return; 
     } 
     try 
     { 
      fin = new FileInputStream(args[0]); 
      fout = new FileOutputStream(args[1]); 
      do { 
       i = fin.read(); 
       if(i != -1) fout.write(i); 
      } while(i != -1); 
     } catch(IOException e){ 
      System.out.println("I/O Error: " + e); 
     } finally { 
      try 
      { 
       if(fin != null) fin.close(); 
      } catch(IOException e2) 
      { 
       System.out.println("Error Closing Input file"); 
      } 
      try 
      { 
       if(fout != null) fout.close(); 
      } catch(IOException e2) 
      { 
       System.out.println("Error Closing Output File"); 
      } 
     } 
    } 
} 

sogar in der Lage, ich könnte es in der Befehlszeile laufen nur durch

java -classpath . CopyFile 

Ich bin nur neugierig, was falsch sein könnte.

+1

Wenn Sie versuchen, von einem Befehl auszuführen Linie, was ist der Fehler, den Sie bekommen? – mobiuseng

+0

Ich bekomme 'Fehler: Hauptklassendateiname konnte nicht gefunden oder geladen werden. – Dhay

+1

fügen Sie Ihre Java-Datei ein –

Antwort

0

Ihr aktuelles Verzeichnis ist in Ihrem Classpath nicht, so Java können Sie Ihre Klasse nicht gefunden, Sie dann java sagen, gehen aktuelle Verzeichnis Copyfile durch diese zu finden:

java -classpath . CopyFile