الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

خطوات لبناء أداه لتحديت ملف الجار

بدأه العيافـي في 16 ديسمبر 2010 · 40 رد · 3,547 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#26
herch كتب:

لا أدري blink.gif

كيف تنشئ الملفات jar التي تستعمل؟ باستعمال الأمر jar أم بشيء آخر

-------------

هل الخطأ يظهر دائما أم فقط عند إضافة الملفات jar؟

unsure.gifunsure.gifunsure.gifunsure.gif

انا انشأ ملفات الـ jar باستخدام الـ netbeans

الخطأ ظهر ايضا عن اضافه ملف من النوع text

Software Developer
Mahmoudkelany.com


 

#27

قمت بتجربته في windows xp وهو يعمل بشكل عادي. ربما المشكل في جهازك أو نظامك (seven؟؟)

لو ممكن أحد الإخوة يجرب الكود لنتأكد :wub:

#28
herch كتب:

قمت بتجربته في windows xp وهو يعمل بشكل عادي. ربما المشكل في جهازك أو نظامك (seven؟؟)

لو ممكن أحد الإخوة يجرب الكود لنتأكد :wub:

اممم wink.gifwink.gif

انا شغال على Seven فعلا

هل احد الاخوه لديه seven يجرب عليه الكود

Software Developer
Mahmoudkelany.com


 

#29

محمود اعطيني الملفات التي تجرب عليها

بالمناسبة هتدفع كام مقابل التجربة :)

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#30
علاء الصالحي كتب:

محمود اعطيني الملفات التي تجرب عليها

بالمناسبة هتدفع كام مقابل التجربة :)

تحياتي

هادفع ايه مش دافع حاجه :D

هذه هى الملفات مضغوطه

Archive.zip

هتلاقى عند ملف

Crazy Paint Prush.jar

دا عاوز اضيف بداخله

الملف اسمه

Crazy_Paint_Prush_V2.jar

فى المكان التالى

com/jkelany/resouces/

هتلاقى المكان دا بداخل ملف الجار Crazy Paint Prush.jar

والكود اللى انا استخدمه اهووو

بعد ما يتم اضافته المفروض تشغل ملف الجار بعد ما اضيف له الملف الاخر

ولو اكمل التسطيب لديك فان العمل يكون تم بشكل سليم

انما لقدر الله ان كانت الاخرى ( هاشوف حسابى معاك tongue.giftongue.gif)

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.jar.JarOutputStream;

public class EditJarTest {

	static void createTempJar(String originalJar, String copyJar) throws FileNotFoundException, IOException {
    	//Make a teporary copy of the jar file
    	BufferedInputStream in = new BufferedInputStream(new FileInputStream(originalJar));
    	BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(copyJar));
    	int b;
    	while ((b = in.read()) != -1) {
        	out.write(b);
    	}
    	in.close();
    	out.close();
	}

	static byte[] getContentFileToAdd(String filePath) throws FileNotFoundException, IOException {
    	//Read the content of the file to add and put it in a byte array
    	FileInputStream textFileIn = new FileInputStream(filePath);
    	byte[] data = new byte[textFileIn.available()];
    	textFileIn.read(data);
    	textFileIn.close();
    	return data;
	}

	public static void main(String[] args) throws FileNotFoundException, IOException {

    	//The path to the original jar
    	String jarName = "d:/Crazy Paint Prush.jar";

    	//The path to the temporary jar
    	String jarNameTmp = "d:/Crazy Paint Prush.jar.tmp";

    	createTempJar(jarName, jarNameTmp);

    	//The path to the file to add
    	String fileToAdd = "d:/Crazy_Paint_Prush_V2.jar";

    	byte[] data = getContentFileToAdd(fileToAdd);

    	//We use the class JarFile to read from the temporary jar file
    	JarFile jarFile = new JarFile(jarNameTmp);

    	//We retrieve all the entries (files) in the jar file
    	Enumeration<JarEntry> entries = jarFile.entries();

    	//we will use JarOutputStream to create a new jar file
    	JarOutputStream jarOut = new JarOutputStream(new FileOutputStream(jarName));

    	//Read each entry in the tmp jar and write it in the original jar,
    	//because the creation of a new JarOutputStream delete any previous content

    	while (entries.hasMoreElements()) {
        	JarEntry entry = entries.nextElement();
        	if (!entry.isDirectory()) {
            	byte[] entryData = new byte[(int) entry.getSize()];
            	jarOut.putNextEntry(entry);

            	InputStream entryIn = jarFile.getInputStream(entry);
            	while (entryIn.read(entryData) != -1) {
                	jarOut.write(entryData);
            	}
            	jarOut.closeEntry();
            	entryIn.close();
        	}
    	}

    	//add the new file to the jar
    	jarOut.putNextEntry(new JarEntry(new File(fileToAdd).getName()));
    	jarOut.write(data);
    	jarOut.closeEntry();

    	jarOut.close();
    	new File(jarNameTmp).delete();
	}
}

Software Developer
Mahmoudkelany.com


 

#31

هوه أنتا فاكر ايه يا عم أنتا لازم تدفع حاجة

عايزين مقالين حلوين كده وكلام كده مفيد

على كل آدي الكود بتاعي بتاع زمان عدلته علشان يشتغل معاك يا عم

package jar.test;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.jar.JarInputStream;
import java.util.jar.JarOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

public class JarUtitlity {
	public static void main(String[] args) {
		try {
			File beforeFile = new File(
					"E:\\project\\test2\\src\\jar\\test\\Crazy Paint Prush.jar");
			File file = new File(
					"E:\\project\\test2\\src\\jar\\test\\Crazy_Paint_Prush_V2.jar");
			File afterFile = new File(
					"E:\\project\\test2\\src\\jar\\test\\Crazy_Paint_Prush_V2final.jar");
			JarInputStream jarInputStream = new JarInputStream(
					new FileInputStream(beforeFile));

			JarOutputStream jarOutputStream = new JarOutputStream(
					new FileOutputStream(afterFile));
			ZipEntry nextElement = jarInputStream.getNextEntry();
			while (nextElement != null) {

				System.out.println(nextElement.getName());

				jarOutputStream.putNextEntry(nextElement);
				int byteOfEntry ;
				while((byteOfEntry = jarInputStream.read())!=-1)
					jarOutputStream.write(byteOfEntry);
				jarOutputStream.closeEntry();
				nextElement = jarInputStream.getNextEntry();
			}
			jarInputStream.close();
			ZipEntry entry = new ZipEntry("path\\newPlace");// مسار
																				// المجلد
																				// أو
																				// الملف
			jarOutputStream.putNextEntry(entry);
			FileInputStream fileInputStream=new FileInputStream(file);
			int character;
			while((character=fileInputStream.read())!=-1){
				jarOutputStream.write(character);// إذا كنا نتكلم عن ملف المعلموات المراد
				// كتابتها في الملف
			}

			jarOutputStream.closeEntry();
			jarOutputStream.close();

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#32
علاء الصالحي كتب:

هوه أنتا فاكر ايه يا عم أنتا لازم تدفع حاجة

عايزين مقالين حلوين كده وكلام كده مفيد

على كل آدي الكود بتاعي بتاع زمان عدلته علشان يشتغل معاك يا عم

ما انا دفعت لك برنامجين اهووو :D

المقالات دى مش وقتها علشان الامتحانات بس

انما ان شاء الله حاضر من عنيا تحت امرك

هاشوف الكود ان شاء الله :)

وارد عليك تانى

Software Developer
Mahmoudkelany.com


 

#33

لا يا عم برنامج فيه عربي والثاني ما فيهوش عربي

يبقى احنا كده خالصين :)

يبقى المقالات مقالات وإلا وأنتا عارف وإلا بتعمل ايه :lol:

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#34
علاء الصالحي كتب:

لا يا عم برنامج فيه عربي والثاني ما فيهوش عربي

يبقى احنا كده خالصين :)

يبقى المقالات مقالات وإلا وأنتا عارف وإلا بتعمل ايه :lol:

تحياتي

ما انا قولت لك هاعرب لك البرنامج التانى متزعلش ياعم

طب شوف يا عم الخطأ دا

post-217802-057258300 1294929952_thumb.p

اللى انا غيرته فالكود بتاعك

مسار الملفات بس

File beforeFile = new File(
                	"d:/Crazy Paint Prush.jar");
        	File file = new File(
                	"d:/Crazy_Paint_Prush_V2.jar");
        	File afterFile = new File(
"d:/Crazy_Paint_Prush_V2final.jar");
المرفقات
errror_Jar.png

Software Developer
Mahmoudkelany.com


 

#35

كده أنا عايز موضوعين كمان

الأخ jar file يتعامل بطريقة غريبة

يستثني مجلد META-INF من الموضوع

المهم عليك ان تكتبه بيدك أو تنتقل إلى Zip

على كل قمت بتحويل البرنامج إلى Zip

لو أردت استخدامه

package jar.test;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.jar.JarInputStream;
import java.util.jar.JarOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;

public class JarUtitlity {
	public static void main(String[] args) {
		try {
			File beforeFile = new File(
					"E:\\project\\test2\\src\\jar\\test\\Crazy Paint Prush.jar");
			File file = new File(
					"E:\\project\\test2\\src\\jar\\test\\Crazy_Paint_Prush_V2.jar");
			File afterFile = new File(
					"E:\\project\\test2\\src\\jar\\test\\Crazy_Paint_Prush_V2final.jar");
			ZipInputStream jarInputStream = new ZipInputStream(
					new FileInputStream(beforeFile));

			ZipOutputStream jarOutputStream = new ZipOutputStream(
					new FileOutputStream(afterFile));
			ZipEntry nextElement = jarInputStream.getNextEntry();
			while (nextElement != null) {

				System.out.println(nextElement.getName());

				jarOutputStream.putNextEntry(nextElement);
				int byteOfEntry ;
				while((byteOfEntry = jarInputStream.read())!=-1)
					jarOutputStream.write(byteOfEntry);
				jarOutputStream.closeEntry();
				nextElement = jarInputStream.getNextEntry();
			}
			jarInputStream.close();
			ZipEntry entry = new ZipEntry("path\\newPlace");// مسار
																				// المجلد
																				// أو
																				// الملف
			jarOutputStream.putNextEntry(entry);
			FileInputStream fileInputStream=new FileInputStream(file);
			int character;
			while((character=fileInputStream.read())!=-1){
				jarOutputStream.write(character);// إذا كنا نتكلم عن ملف المعلموات المراد
				// كتابتها في الملف
			}


			jarOutputStream.closeEntry();

			jarOutputStream.close();

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#36
علاء الصالحي كتب:

كده أنا عايز موضوعين كمان

الأخ jar file يتعامل بطريقة غريبة

يستثني مجلد META-INF من الموضوع

المهم عليك ان تكتبه بيدك أو تنتقل إلى Zip

على كل قمت بتحويل البرنامج إلى Zip

لو أردت استخدامه

تحياتي

ما انا لاحظت كدا :)

بجد بجد مش عارف اقولك ايه 015.gif015.gif

53e35528a2.gif

Software Developer
Mahmoudkelany.com


 

#37

تقولي ليك عليه أربع مواضيع :)

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#38
علاء الصالحي كتب:

تقولي ليك عليه أربع مواضيع :)

تحياتي

كانوا اتنين دلوقتى اربعه ؟؟

دا انت صعب خالص tongue.giftongue.gif

Software Developer
Mahmoudkelany.com


 

#39

ما هو أنتا غلبتني يا عم محمود

وأنا بحب آخد حقي مواضيع :)

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#40
علاء الصالحي كتب:

ما هو أنتا غلبتني يا عم محمود

وأنا بحب آخد حقي مواضيع :)

تحياتي

ما هو انا غلبتك يعنى تفوقت عليك هههههههههههه

وليس غلبتك يعنى حيرتك واتعبتك

شوفت التلاعب بالالفاظ ههههه :D

وانا بحب اخد حقى ناشف tongue.gif

Software Developer
Mahmoudkelany.com


 

#41

ماشي يبقى زادوا موضوع :)

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة