Ich versuche derzeit ein Programm, das einen Ordner inkl Unterordner und Dateien in einem anderem Ordner, zu erstellen. Es gibt zurzeit zwei class Dateien: CopyThread und die TransferApp.
Hier die Source von TransferApp, die die Main enthält:
Und die CopyThread.class:
Beim versuch dies zu compilieren, mit javac; ergiebt es dauern folgende Fehlermeldung:
Noch genauer:
Diese Fehlermeldung kommt immer nach folgenden Befehl:
Weiß jemand warum dieser Fehler auftritt? Hat jemand eine Antwort oder ein Link der mir helfen könnte? Ich hoffe auf baldige Antworten.
MfG
JaLin
Hinweis: Ich habe genau alles abgetippt wie im Buch. Und ich hab es auch die Source komplett verstanden.
Hier die Source von TransferApp, die die Main enthält:
Java:
import java.util.Properties;
import java.io.FileInputStream;
public TransferApp (String srcDir, String destDir) {
Thread t = new CopuThread("Transfer wartet ...", srcDir, destDir);
Runtime.getRuntime().addShutdownHook(t);
do {
System.out.print(".");
try {
Thread sleep(1);
catch (interruptedException ie) {
Runtime.getRuntime().halt(1);
}
}
while (true);
}
private static void helpAndTerminate() {
System.out.printIn("Verwenden Sie bitte zwei unterschiedliche Parameter");
System.out.printIn("\tTransfer <Quelle> <Ziel>");
System.out.printIn("oder folgende Properties-Datei:");
System.out.printIn("\t<Transfer-Verzeichnis>/prp/transfer.properties");
System.out.printIn("mit folgenden Eintr\u00e4gen:");
System.out.printIn("\tSrcDir <Quelle>");
System.out.printIn("\tDestDir <Ziel>");
System.exit(1);
}
public static void main(String args[]) {
String warning = "\nWarnung: Gleiche Parameter verwendet!\n";
Properties TransferPrp = new Properties();
switch (args.length {
case 0; // .... Fall 1: Kein Parameter > Poperties laden
try {
transerPrp.load(
new FileInputStream("prp/bas/Basic.properties"));
}
Catch (java.io.IOException e) { // Fall 1.1: Datei nicht gefunden
System.out.printIn("Properties-Datei nicht gefunden: "+ e):
helpAndTerminate(), //Das ist nicht erlaubt
}; // catch
//Quelle:
String srcDir = transferPrp.getProperty("srcDir");
// Ziel
String destDir =transferPrp.getProperty("DestDir");
if (srcDir.equals(destDir)) { // Fall 1.2: Quelle = Ziel
System.err.printIn(warning);
helpAndTerminate(), //Fehlermeldung
}
else { // Fall 1.3: Quelle !=Ziel
new TransferApp (srcDir, destDir);
}
break; //case0
case 1: // Fall 2 : Zu wenig Parameter
System.err.printIn("\nZu wenige Parameter.\n");
helpAndTerminate();
break; // Fall 2
case 2: // Fall 3: 2 Parameter
if (args[0].equals(args[1])) { // Fall 3.1: Quelle = Ziel
System.err.printIn(warning;
helpAndTerminate(): //Fehlermeldung
}
// Fall 3.2: Quelle != Ziel:
new TransferApp(args[0], args[1]);
break;
}
}
}
Und die CopyThread.class:
Java:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
private String srcDir;
private String destDir;
/**
* Erster Konstruktor
* @param message Meldung fuer die Konsolenausgabe
* @param srcDir Quelle
* @param destDir Ziel
*/
public CopyThread(String message, String srcDir, String destDir) {
this.srcDir = srcDir;
this.destDir = destDir;
System.out.printIn(message); // Meldung auf der Konsole
}
/**
* Zweiter Konstruktor
* @param srcDir Quelle
* @param srcDir Ziel
*/
public CopyThread(String srcDir, String destDir) {
this.srcDir = srcDir;
this.destDir = destDir;
}
/**
* Methode run stoesst den Kopiervorgang an
*/
public void run() {
System.out.printIn("\nKopiere von "+ srcDir +"nach "+ destDir");
try {
rcopy(newFile(srcDir) , new File(destDir));
}
catch (IOException io) {
System.err.printIn("Kopierfehler:"+io);
}
System.out.printIn("\nKopiervorgang beendet.");
}
/**
* Rekursive Kopiermethode (kopiert Unterverzeichnisse)
* @param source Quelle
* @param destination Ziel
* @throws IOExceptions wird ausgeloest, wenn etwas schieflaeuft
*/
public static void rcopy(File source, File destionation) throws IOException {
if (source.isDirectory()) { // Fall 1: Verzeichnis
destination.mkdir();
String[] dirList = source.list();
for (int = 0, i < dirList.length; i++) {
String entryName = dirList[i];
System.out.printIn("\nKopiere ".concat( String.valueOf(
String.valueOf(entryName)))); //Debug
rcopy(new File(source, entryName) ,
new File (destination, entryName));
}
}
else { // Fall 2: Datei
int numberOfBytes;
byte[] buffer = new byte[32768];
FileInputStream in = new FileInputStream(source);
FileOutputStream out = new FileOutputStream(destination);
while ( (numberOfBytes = in.read(buffer)) > 0) {
out.write(buffer, 0, numberOfBytes);
}
in.close(); //InputStream schliessen
out.close(); //OutputStream schliessen
}
}
Beim versuch dies zu compilieren, mit javac; ergiebt es dauern folgende Fehlermeldung:
Code:
class, interface, or enum expected
Noch genauer:
Code:
ch10/Transfer/TransferApp.java:4: class, interface, or enum expected
public TransferApp (String srcDir, String destDir) {
^
ch10/Transfer/TransferApp.java:6: class, interface, or enum expected
Runtime.getRuntime().addShutdownHook(t);
^
ch10/Transfer/TransferApp.java:7: class, interface, or enum expected
do {
^
ch10/Transfer/TransferApp.java:9: class, interface, or enum expected
try {
^
ch10/Transfer/TransferApp.java:11: class, interface, or enum expected
catch (interruptedException ie) {
^
ch10/Transfer/TransferApp.java:13: class, interface, or enum expected
}
^
ch10/Transfer/TransferApp.java:16: class, interface, or enum expected
}
^
ch10/Transfer/TransferApp.java:20: class, interface, or enum expected
System.out.printIn("\tTransfer <Quelle> <Ziel>");
^
ch10/Transfer/TransferApp.java:21: class, interface, or enum expected
System.out.printIn("oder folgende Properties-Datei:");
^
ch10/Transfer/TransferApp.java:22: class, interface, or enum expected
System.out.printIn("\t<Transfer-Verzeichnis>/prp/transfer.properties");
^
ch10/Transfer/TransferApp.java:23: class, interface, or enum expected
System.out.printIn("mit folgenden Eintr\u00e4gen:");
^
ch10/Transfer/TransferApp.java:24: class, interface, or enum expected
System.out.printIn("\tSrcDir <Quelle>");
^
ch10/Transfer/TransferApp.java:25: class, interface, or enum expected
System.out.printIn("\tDestDir <Ziel>");
^
ch10/Transfer/TransferApp.java:26: class, interface, or enum expected
System.exit(1);
^
ch10/Transfer/TransferApp.java:27: class, interface, or enum expected
}
^
ch10/Transfer/TransferApp.java:29: class, interface, or enum expected
public static void main(String args[]) {
^
ch10/Transfer/TransferApp.java:31: class, interface, or enum expected
Properties TransferPrp = new Properties();
^
ch10/Transfer/TransferApp.java:32: class, interface, or enum expected
switch (args.length {
^
ch10/Transfer/TransferApp.java:34: class, interface, or enum expected
try {
^
ch10/Transfer/TransferApp.java:37: class, interface, or enum expected
}
^
ch10/Transfer/TransferApp.java:43: class, interface, or enum expected
String srcDir = transferPrp.getProperty("srcDir");
^
ch10/Transfer/TransferApp.java:45: class, interface, or enum expected
String destDir =transferPrp.getProperty("DestDir");
^
ch10/Transfer/TransferApp.java:46: class, interface, or enum expected
if (srcDir.equals(destDir)) { // Fall 1.2: Quelle = Ziel
^
ch10/Transfer/TransferApp.java:48: class, interface, or enum expected
helpAndTerminate(), //Fehlermeldung
^
ch10/Transfer/TransferApp.java:52: class, interface, or enum expected
}
^
ch10/Transfer/TransferApp.java:54: class, interface, or enum expected
case 1: // Fall 2 : Zu wenig Parameter
^
ch10/Transfer/TransferApp.java:56: class, interface, or enum expected
helpAndTerminate();
^
ch10/Transfer/TransferApp.java:57: class, interface, or enum expected
break; // Fall 2
^
ch10/Transfer/TransferApp.java:58: class, interface, or enum expected
case 2: // Fall 3: 2 Parameter
^
ch10/Transfer/TransferApp.java:61: class, interface, or enum expected
helpAndTerminate(): //Fehlermeldung
^
ch10/Transfer/TransferApp.java:65: class, interface, or enum expected
break;
^
ch10/Transfer/TransferApp.java:66: class, interface, or enum expected
}
^
32 errors
Diese Fehlermeldung kommt immer nach folgenden Befehl:
Code:
javac ch10/Transfer/TransferApp.java
Weiß jemand warum dieser Fehler auftritt? Hat jemand eine Antwort oder ein Link der mir helfen könnte? Ich hoffe auf baldige Antworten.
MfG
JaLin
Hinweis: Ich habe genau alles abgetippt wie im Buch. Und ich hab es auch die Source komplett verstanden.