Ich versuche, ein altes Java-Wrapper-Skript für ein Spiel neu zu erstellen, aber ich weiß nicht, warum ich einen Fehler bekomme, wenn Ich führe es in meinem VPS (CentOS 6), ich bekomme nur den Fehler, wenn ich es dort laufen, in meinem Mac oder PC mit Windows 10 passiert es nicht ...java.io.IOException: Dateigröße falsch (bekomme nur Fehler unter Linux (CentOS 6))
Bereits einen Blick geworfen hier auf Stackoverflow und ich einen gemeinsamen ähnlichen Fehler sah, und das ist, weil die Größe -1
wird, aber ich denke, das ist hier nicht der Fall:
INFO: Downloading the latest version of StarMade (length: 179840020 bytes, URL: http://files.star-made.org/build/starmade-build_20160413_201539.zip)...
„ls -lha:“
-rw-r--r-- 1 root root 172M Apr 18 11:05 StarMade-latest.zip
und als 179.840.020 Bytes ~ = 171,5 Megabyte
ist hier der Fehler:
java.io.IOException: File downloaded is the incorrect size!
at com.diogosaraiva.starmade.wrapper.VersionManager.downloadUpdate(VersionManager.java:127)
at com.diogosaraiva.starmade.wrapper.server.Server.<init>(Server.java:90)
at com.diogosaraiva.starmade.wrapper.ServerWrapper.main(ServerWrapper.java:24)
hier einige von VersionManager.java
final URL url = new URL(remotePath);
final URLConnection connection = url.openConnection();
final int size = connection.getContentLength();
if (size < 0) {
ServerWrapper.getLogger().info("Unable to get the latest version of StarMade!");
} else {
ServerWrapper.getLogger().info("Downloading the latest version of StarMade (length: " + size + " bytes, URL: " + remotePath + ")...");
}
inputStream = new BufferedInputStream(url.openStream());
outputStream = new FileOutputStream("StarMade-latest.zip");
final byte data[] = new byte[1024];
int count;
double sumCount = 0.0;
int percentage;
int lastPercentage = 0;
while ((count = inputStream.read(data, 0, 1024)) != -1) {
outputStream.write(data, 0, count);
sumCount += count;
percentage = (int) Math.ceil(sumCount/size * 100);
if (percentage != lastPercentage) {
ServerWrapper.getLogger().info(percentage + "%");
}
lastPercentage = percentage;
}
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
ServerWrapper.getLogger().info("Download finished. ");
if (isInstalled() && backup) {
ServerWrapper.getLogger().info("Backing up server.");
final File f = new File(new SimpleDateFormat("'backup-'MM-dd hh-mm-ss-SS'.zip'").format(new Date()));
if (!f.exists()) {
f.createNewFile();
}
ZipUtils.zipDirectory(starmadeDirectory, f);
}
if (!starmadeDirectory.exists()) {
starmadeDirectory.mkdirs();
}
ServerWrapper.getLogger().info("Installing update.");
final File starmadeUpdate = new File("starmade-latest.zip");
if (starmadeUpdate.length() != size) {
throw new IOException("File downloaded is the incorrect size!");
}
Also, warum ich erhalte dieser Fehler?
EDIT: Ich laufe als root und die CentOS mit denen ich laufe ist ohne Desktop Enviroment. Ich habe bereits versucht mit Openjdk und Oracle JDK
es funktioniert, vielen Dank – DiogoSaraiva