Hey Leute,
ich möchte ein Programm schreiben, dass sich automatisch updatet. Ich hab auch schon überlegt wie man dies erreichen könnte, jedoch schaffe ich es nicht, *.class Datein herunterzuladen ;'(
Ich habe zuerst versucht, es über URL.openStream zu schaffen:
Mit einer *.txt Datei lief es super, jedoch hat er bei der class nicht alles geschreiben. Ich hab herausgefunden, dass es daran liegt, dass in class Datein auch mittendrin das Byte -1 auftritt. Also hab ich weiter probiert, diesmal mit commons-net FTPClient.retrieveFile:
Damit hat er zwar genau diesselbe Datei (soweit ich verglichen hab ) heruntergeladen, jedoch wenn ich sie starte kommt die Fehlermeldung:
Exception in thread "main" java.lang.ClassFormatError: Unknown constant tag 13 in class file [local]
...
...
Could not find the man class: [local]. Programm will exit.
Was hab ich falsch gemacht?
Wie mache ich es richtig =?
mfg
BH16
PS: Ich hab bei
auch BINARY_FILE_TYPE, NON_PRINT_TEXT_FORMAT, STREAM_TRANSFER_MODE, und FILE_STRUCTURE ausprobiert...
ich möchte ein Programm schreiben, dass sich automatisch updatet. Ich hab auch schon überlegt wie man dies erreichen könnte, jedoch schaffe ich es nicht, *.class Datein herunterzuladen ;'(
Ich habe zuerst versucht, es über URL.openStream zu schaffen:
Java:
URL url = new URL("ftp://user:pwd@host/dir/datei.end");
InputStream in = url.openStream();
FileOutputStream fos = new FileOutputStream("datei.end");
byte b=(byte) in.read();
while(b!=-1){
System.out.println(b);
fos.write(b);
b=(byte) in.read();
}
fos.close();
Mit einer *.txt Datei lief es super, jedoch hat er bei der class nicht alles geschreiben. Ich hab herausgefunden, dass es daran liegt, dass in class Datein auch mittendrin das Byte -1 auftritt. Also hab ich weiter probiert, diesmal mit commons-net FTPClient.retrieveFile:
Java:
FTPClient ftp = new FTPClient();
ftp.connect("host");
ftp.login("user", "pwd");
ftp.changeWorkingDirectory("dir");
String local = "local.class";
String remote = "ftp.class";
try {
ftp.setFileTransferMode(FTPClient.ASCII_FILE_TYPE);
File file = new File(local);
FileOutputStream fos = new FileOutputStream(file);
ftp.retrieveFile(remote, fos);
fos.close();
} catch (IOException e) {
System.out.println("Could not download file!");
e.printStackTrace();
}
ftp.logout();
ftp.disconnect();
Damit hat er zwar genau diesselbe Datei (soweit ich verglichen hab ) heruntergeladen, jedoch wenn ich sie starte kommt die Fehlermeldung:
Exception in thread "main" java.lang.ClassFormatError: Unknown constant tag 13 in class file [local]
...
...
Could not find the man class: [local]. Programm will exit.
Was hab ich falsch gemacht?
Wie mache ich es richtig =?
mfg
BH16
PS: Ich hab bei
Java:
ftp.setFileTransferMode(FTPClient.ASCII_FILE_TYPE);
Zuletzt bearbeitet: