Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 00:34

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Java] Jar-Datei splitten

Discussion on [Java] Jar-Datei splitten within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
.Resistance's Avatar
 
elite*gold: 17
Join Date: Jul 2009
Posts: 1,562
Received Thanks: 478
[Java] Jar-Datei splitten

Hi
ich spiele zZ ein bisschen mit Java rum und möchte eine Jar-Datei splitten.
Ich habe davor 2 mal das selbe hallo_welt Programm durch einen Splitstring getrennt aneinander gehängt. Dazu der Code:
Das hat super funktioniert. Ich habe dannach eine Datei, die ich immer noch ausführen kann (das erste hallo_welt Programm wird ausgeführt) und die Dateigröße stimmt auch (datei1+datei2+splitString)

Jetzt will ich mithilfe von split() die beiden ursprünglichen Dateien wieder herstellen:
Und die beiden Felder des String Arrays wieder in 2 neue Dateien schreiben:

Die beiden neuen Dateien sind aber größer als die beiden ursprünglichen Dateien und lassen sich nicht mehr ausführen:
Code:
invalid file (bad magic number): Exec format error
Dateigrößen:
hallo_welt1.jar: 17362 byte
hallo_welt2.jar: 17362 byte
splitString: 1234567890 entspricht 10 byte
hallo_welt12.jar (beide zusammen): 34734 byte <- lässt sich problemlos ausführen
Nach dem Splitten:
file0.jar: 29473 byte
file1.jar: 29473 byte

er erkennt also den SplitString und splittet auch in 2 gleich große Dateien. Diese sind aber nicht mehr die ursprünglichen Dateien.
Woran könnte das liegen?
.Resistance is offline  
Old 07/29/2012, 16:26   #2
 
elite*gold: 0
Join Date: Jun 2012
Posts: 8
Received Thanks: 3
Hi,
ich hab da mal ein bischen was geändert. Zum einen wird die Datei jetzt mit dem FileInputStream eingelesen und die zwei neuen Dateien über den FileOutputStream geschreiben. Der FileWriter ist für raw-bytes nix^^.
Dann musst du aber noch darauf achten, das der splitStr nicht irgendwie schon in den beiden Dateien vorkommt. Allgemein ist die Technik ned so ideal und muss noch optimiert werden ;P

Code:
public static byte[][] getOldFile(String file, String splitStr) {		
		try {
			FileInputStream fis = new FileInputStream(file);
			byte[] dataByte = new byte[(int) (new File(file)).length()];
			fis.read(dataByte);
			fis.close();
			
			byte[] splitByte = splitStr.getBytes();
			
			int splitPos = -1;
			
			for(int i = 0; i < dataByte.length - splitByte.length;i++){
				for (int j = 0; j < splitByte.length; j++) {
					if (dataByte[i+j] != splitByte[j]) {
						break;
					}
					if (j == splitByte.length-1) {
						splitPos = i;					
					}
				}
				if(splitPos != -1){
					break;
				}
			}
			byte[] rByte1 = new byte[splitPos];
			byte[] rByte2 = new byte[dataByte.length - splitPos - splitByte.length];
			System.arraycopy(dataByte, 0, rByte1, 0, rByte1.length);
			System.arraycopy(dataByte, splitPos + splitByte.length, rByte2, 0, rByte2.length);
			
			byte[][] returnByte = {rByte1,rByte2};
			
			return returnByte;
		} catch (Exception e) {
			return null;
		}
	}
Code:
public static void writeFile(String fi, byte[] data) {
		try {
	        FileOutputStream output = new FileOutputStream(fi);
	        output.write(data, 0, data.length);
	        output.flush();
	        output.close();			
		} catch (Exception e) {
		}
	}
DaKku0815 is offline  
Thanks
1 User
Old 07/29/2012, 16:47   #3
 
.Resistance's Avatar
 
elite*gold: 17
Join Date: Jul 2009
Posts: 1,562
Received Thanks: 478
Nice. Funktioniert
Ich denk mal das das Problem die umwandlung von Byte in String und wieder zurück war?
Und wie meinst du, dass man die Technik optimieren könnte?
.Resistance is offline  
Old 07/29/2012, 17:52   #4
 
elite*gold: 0
Join Date: Jun 2012
Posts: 8
Received Thanks: 3
Also ein Ansatz wär z.B. ein "Pseudo-Filesystem". Die Dateien direkt hintereinander setzen und dann noch n bytes hinten anzuhängen die dazu dienen die Anzahl der bytes einer der Dateien abzuspeichern. Bei 10 bytes (80 bit) hat man somit die Möglichkeit 2^80 bytes (1 Yottabyte ? (villeicht etwas überdimensioniert ;P)) für eine Datei zu "markieren".
DaKku0815 is offline  
Thanks
1 User
Old 07/29/2012, 18:30   #5
 
.Resistance's Avatar
 
elite*gold: 17
Join Date: Jul 2009
Posts: 1,562
Received Thanks: 478
Ich glaub ich versteh was du meinst ^^
Das versuche ich demnächst mal umzusetzen.
Danke für deine Hilfe
.Resistance is offline  
Reply


Similar Threads Similar Threads
Textdatei in 14 kleine datei splitten
07/26/2012 - Technical Support - 3 Replies
Hey Ich Fab folgendes Problem: Ich hab eine textdatei,die 7 gigabyte groß ist,also zu groß für meinen arbeitsspeicher (RAM) und somit auch zu groß für den text editor. nun will ich 14 kleine teile davon haben, wie get das?? Bekommt auch ein dickes thanks. Wenn möglich eine ordendliche erklährung wie das gehen soll^^
MP4 Datei splitten?
02/04/2012 - Off Topic - 3 Replies
Servus leute, Ich habe eine mp4 Datei, und ich habe schon etliche Programme benutzt, alles nicht geklappt. Könnt ihr mir da irgendwie helfen?
Java - Eine Datei ausführen
01/25/2012 - General Coding - 2 Replies
hallo ich würde gerne ein programm in java durch den code starten weiß aber nicht wie das geht bitte um schnelle antwort :)
Problem beim Splitten einer .m2ts-Datei mit tsMuxer GUI!
01/14/2012 - Technical Support - 0 Replies
Hallo. Wenn ich eine .m2ts (AVCHD-Video) splitten will, und ich diese in den Input von tsmuxer GUI (v1.10.6) schiebe, kommt folgende Meldung : http://s14.directupload.net/images/120114/wlz93lv 9.png Kann mir wer helfen? Bei den Tracks wird überhaupt gar nichts angezeigt! Vielen Dank im voraus.
[HowTo] Datei splitten und wieder zusammenfügen
05/08/2010 - Tutorials - 2 Replies
Hallo! Hier beschreibe ich euch wie ihr mit (einfachen) Shell-Befehlen grosse Dateien aufsplitten und wieder zusammefügen könnt. Als Beispiel nehmen wir eine Datei mit dem Namen "image.iso". Diese Datei ist z.b. 100 MB gross und soll in 5 MB grosse Teile gesplittet werden. Damit der Wiedererkennungwert der Datei nicht verloren geht lassen wir die Datei nicht umbenennen, sondern lassen das Suffix ".part_" gefolgt von einer 2-stelligen Zahl anhängen. Aus "image.iso" wird nach dem...



All times are GMT +1. The time now is 00:35.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.