[فكرة] :إعادة توجيه جميع مخرجات برنامج java نحو ملف

لدى كتابة برامج بلغة الـ java  فإنه غالبا ما نبدأ في إظهار بعد النتائج على الـ console  لنعرف إن كانت عملية ما قد تمت بصورة صحيحة،
لكن أحيانا لما تكثر هذه المخرجات و تتعدى بضع الآلاف (و أحيانا بعض المئات)  فإنه من الصعب قراءتها من الـ console   إما لأن لون الـ console  غير مريح  أو أن كثرة المخرجات جعل من المستحيل قراءة أولى البيانات  (عدد الأسطر التي يمكن قراءتها في الـ console محدود و لهذا عندما يتم تجاوز حد ما فإنه يتم حذف السطور الأولى)

و عليه فإنه أول ما يتبادر إلى ذهنك هو كتابة النتائج في ملف نصي لقراءتها لاحقا

هناك طريقة تجنبنا التعامل مع الملفات من فتح و إغلاق و إضافة إلى نهاية الملف و ما إلى ذلك من عمليات على الملفات و هي بإضافة السطرين التاليين في بداية الشفرة المصدرية

System.setOut(new PrintStream(new FileOutputStream(“c:\\out.txt”)));
System.setErr(new PrintStream(new FileOutputStream(“c:\\error.txt”)));

حيث أن السطر الأول سيوجه جميع المخرجات الطبيعية إلى الملف

c:\out.txt

أما الثاني فسيرسل جميع رسالات الخطأ إلى المل

c:\error.txt

حساب الفرق بين تاريخين في الـ Java

السلام عليكم

الشيفرة التالية توضح كيفية حساب الفرق بين تاريخين في لغة Java

في هذا المثال التاريخ مكون من السنة و الشهر و اليوم و الساعة و الدقيقة و الثانية

و نعتمد في حساب الفرق على الصنف

java.util.Calendar

إقرأ المزيد

الـ Communication بين عملاء الـ Jade

بعد أن رأينا كيف ننشئ عملاء JADE و كيف نحدد المهام التي يقومون بها، لا يمكننا الحديث عن نظام متعدد العملاء multi agent  system و ليس عن مجموعة عملاء يغرد كل في سربه إلا إذا كانت هناك تواصل و محادثة communication بين العملاء،

هذا المقال يقدم شرحا عن كيفية التواصل بين العملاء و كيفية بناء محادثات بينهم.

1.    مقدمة:

لكي يستطيع عملاء JADE  التعاون على أمر ما لا بد لهم من وسائل للتواصل بينهم، يملك كل عميل JADE  صندوق بريدي يستقبل الرسائل المرسلة إليه، تكون هذه الرسائل في قائمة مرتبة حسب زمن وصولها.

إقرأ المزيد

تعرف على ant

تعرف  على ant

الهدف من هذا المقال هو تعريف الـ ant  لمطوري الجافا الذين لم يستعملوا هذه الأداة من قبل. و لتبين الفائدة المرجوة من هذه الأداة سنعقد مقارنة بين مشروعين أحدها يتم إنشاؤه و ترجمته باستعمال سطر الأوامر  و الآخر باستعمال الـ Ant  . متابعة ممتعة

إقرأ المزيد

الـ Behaviours في Jade, برمجة multi agents systems

نحتاج لدى برمجة العملاء باستعمال JADE إضافة مجموعة من المهمات التي يجب على العميل القيام بها، كتابة هذه المهام يجب أن يخضع لبعض الشروط و المقاييس، سنتتطرق من خلال هذا المقال إلى أسس كتابة المهمات Behaviour لعملاء JADE

http://www.4shared.com/file/115587933/1d934057/JadeBehaviourAR.html

حل لمشكل java.lang.OutOfMemoryError: Java heap space

حل لمشكل  java.lang.OutOfMemoryError: Java heap space

السلام عليكم

أثناء كتابتي لأحد البرامج بالجافا صادفني مشكل عدم توفر الذاكرة اللازمة لتنفيذه

رسالة الخطأ هي:

java.lang.OutOfMemoryError: Java heap space

و هذا لأن البرنامج عبارة عن JADE Agent  يقوم بالتنقل من جهاز إلى آخر حاملا معه مجموعة من الملفات

بعض بحث على النت وجدت أنه يجب الطلب من الـ Java Virtual Machine  بحجز ذاكرة أكبر

يتم ذلك كالتالي:

java -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=1000M YourClass

حيث أن YourClass  هو اسم الـ class الذي سيتم تشغيله  بالطبع  يجب حذف الـ .class  من اسم الـ class  في هذا السطر

أرجو أن تكون هذه الطريقة هي حل لمشكلتك أيضا 😀

كتابة برنامج java لنقل الملفات (إرسال و استقبال) بين جهازين على شبكة محلية

كتابة برنامج java  لنقل الملفات (إرسال و استقبال) بين جهازين على شبكة محلية

كنت أبحث الأسبوع الماضي عن طريقة لإرسال ملفات من جهاز إلى آخر عن طريق الشبكة المحلية فوجدت كودا أعجبني لسهولته أدخلت عليه بعض التعديلات  ليصبح على الشكل التالي

import java.net.*;

import java.io.*;

public class FileServer {

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

// create socket

ServerSocket servsock = new ServerSocket(4007);

String requestedFile=null;

Socket sock;

ObjectInputStream ois=null;

while (true) {

System.out.println(“Waiting on “+servsock.getLocalPort()+”…”);

sock = servsock.accept();

System.out.println(“Accepted connection : ” + sock);

requestedFile=””;

// receive the request

ois = new ObjectInputStream(sock.getInputStream());

try {

requestedFile = (String) ois.readObject();

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

System.out.println(“the requested file is   “+ requestedFile);

// sendfile

File myFile = new File (requestedFile);

byte [] mybytearray  = new byte [(int)myFile.length()];

FileInputStream fis = new FileInputStream(myFile);

BufferedInputStream bis = new BufferedInputStream(fis);

bis.read(mybytearray,0,mybytearray.length);

OutputStream os = sock.getOutputStream();

System.out.println(“Sending…”);

os.write(mybytearray,0,mybytearray.length);

os.flush();

sock.close();

}

}

}

إقرأ المزيد