بسم الله الرحمن الرحيم
ربما تحب ان تكتب برامجك ببيرل و لكن تريد استخدام الواجهة الرسومية سوينج الخاصة بجافا ؟
ربما تحب ان تكتب الكلاسات بطريقة جافا و من ثم تستخدمهم كأنهم كائنات بيرل؟
ربما تحب ان تستخدم بعض المكتبات الموجودة في جافا ؟
ربما مشروعك يحتاج لقوة جافا و بيرل معا ؟
لهذه او لاسباب عديدة اخرى هناك امكانية دمج البرمجة بواسطة جافا داخل اكواد بيرل و ذلك باستخدام Inline::Java ..
اولا خطوات التنصيب :
عملية التنصيب ليست صعبة و لكن مختلفة عن طريقة تنصيب بقية الموجلات البيرلاوية !..
طبعا الخطوة الاولى ان يكون الجهاز يحتوي على اللغتين و من ثم تنصيب انلاين و بعدها تنزيل انلاين جافا ثم فك الضغط ثم اضافة عنوان جافا SDK لملف البناء … باختصار :
1- جافا و بيرل
2- cpan Inline
3- download Inline::Java
4- Extract
5-perl Makefile.PL J2SDK=/usr/lib/jvm/java-6-sun
6- make
7- make install
الان نحن جاهزون لاستخدام جافا في برامج بيرل مثال بسيط :
سنقوم بانشاء كائن جديد باستخدام بيرل و لكن سنكتب الكائن باستخدام جافا …
مثال اكثر تقدما استخدام سوينج في برامج بيرل :
لاحظ الاختلاف هنا في ان كلاس بود بوتن يرث كلاس InlineJavaPerlCaller
و اما البقية فهي ليست غريبة بتاتا على مبرمجي جافا و بيرل ..
صفحة التوثيق الرئيسية :
http://search.cpan.org/~patl/Inline-Java-0.52/Java.pod
ربما تحب ان تكتب برامجك ببيرل و لكن تريد استخدام الواجهة الرسومية سوينج الخاصة بجافا ؟
ربما تحب ان تكتب الكلاسات بطريقة جافا و من ثم تستخدمهم كأنهم كائنات بيرل؟
ربما تحب ان تستخدم بعض المكتبات الموجودة في جافا ؟
ربما مشروعك يحتاج لقوة جافا و بيرل معا ؟
لهذه او لاسباب عديدة اخرى هناك امكانية دمج البرمجة بواسطة جافا داخل اكواد بيرل و ذلك باستخدام Inline::Java ..
اولا خطوات التنصيب :
عملية التنصيب ليست صعبة و لكن مختلفة عن طريقة تنصيب بقية الموجلات البيرلاوية !..
طبعا الخطوة الاولى ان يكون الجهاز يحتوي على اللغتين و من ثم تنصيب انلاين و بعدها تنزيل انلاين جافا ثم فك الضغط ثم اضافة عنوان جافا SDK لملف البناء … باختصار :
1- جافا و بيرل
2- cpan Inline
3- download Inline::Java
4- Extract
5-perl Makefile.PL J2SDK=/usr/lib/jvm/java-6-sun
6- make
7- make install
الان نحن جاهزون لاستخدام جافا في برامج بيرل مثال بسيط :
سنقوم بانشاء كائن جديد باستخدام بيرل و لكن سنكتب الكائن باستخدام جافا …
كود PHP:
#!/usr/bin/perl
use strict;
use Inline Java => "DATA";
# create a triangle object
my $triangle = RightAngledTriangle->new(3,4);
print "The hypotenuse is " . $triangle->get_hypotenuse . "\n";
__DATA__
__Java__
import java.lang.Math;
public class RightAngledTriangle
{
double aj;
double op;
// the constructor (i.e. 'new')
public RightAngledTriangle(double aj, double op)
{
this.aj = aj;
this.op = op;
}
public double get_adjacent()
{
return aj;
}
public double get_opposite()
{
return op;
}
public double get_hypotenuse()
{
return Math.sqrt(
Math.pow(aj,2) +
Math.pow(op,2)
);
}
}
لاحظ الاختلاف هنا في ان كلاس بود بوتن يرث كلاس InlineJavaPerlCaller
و اما البقية فهي ليست غريبة بتاتا على مبرمجي جافا و بيرل ..
كود PHP:
#!/usr/bin/perl
use strict;
use Inline Java => <<'END' ;
import java.util.* ;
import org.perl.inline.java.* ;
import javax.swing.* ;
import java.awt.event.* ;
class Pod_Button extends InlineJavaPerlCaller
implements ActionListener {
JFrame frame = null ;
public Pod_Button() throws InlineJavaException {
frame = new JFrame("Pod_Button") ;
frame.setSize(100,100) ;
JButton button = new JButton("Click Me!") ;
frame.getContentPane().add(button) ;
button.addActionListener(this) ;
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE) ;
frame.show() ;
}
public void actionPerformed(ActionEvent e){
try {
CallPerlSub("main::button_pressed", new Object [] {}) ;
}
catch (InlineJavaPerlException pe){
// [email protected] is in pe.GetObject()
}
catch (InlineJavaException pe) {
pe.printStackTrace() ;
}
}
public void close(){
frame.dispose() ;
frame.hide() ;
frame = null ;
}
public void quit(){
System.exit(0) ;
}
}
END
my $b = new Pod_Button() ;
$b->StartCallbackLoop() ;
$b->close() ;
# Maybe do some other stuff
exit() ; # in client-server mode, optional
$b->quit() ; # in JNI mode
sub button_pressed {
print('click!' . "\n") ; # prints click!
$b->StopCallbackLoop() ;
}
http://search.cpan.org/~patl/Inline-Java-0.52/Java.pod