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

[تنبيه - عنوان غير مناسب : ]using Java classes,packages and API

بدأه MA JAVA في 13 مارس 2010 · 12 رد · 1,381 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخوتي الكرام

ارجو أن يقوم احد الخبراء بتوضيح طريقة استخدام النت بينز في استعمال أكواد جاهزة / لدي مشكلة في استخدام برنامج الوورد نت مع الجافا كما ساوضح فيما يلي:

I am trying to use Java API for WordNet Searching , JAWS to connect to WORDNET and I followed every step in the link

http://lyle.smu.edu/~tspell/jaws/

but nothing work

below are my codes and error

code

------


import edu.smu.tspell.wordnet.*;

/**
* Displays word forms and definitions for synsets containing the word form
* specified on the command line. To use this application, specify the word
* form that you wish to view synsets for, as in the following example which
* displays all synsets containing the word form "airplane":
* <br>
* java TestJAWS airplane
*/
public class TestJAWS
{

/**
* Main entry point. The command-line arguments are concatenated together
* (separated by spaces) and used as the word form to look up.
*/
public static void main(String[] args)
{
// String [] mine;
// mine = (test);
if (args.length > 0)
{
// Concatenate the command-line arguments
StringBuffer buffer = new StringBuffer();

System.setProperty("wordnet.database.dir", "C:/Program Files (x86)/WordNet/2.1/dic/");
for (int i = 0; i < args.length; i++)
{
buffer.append((i > 0 ? " " : "") + args);
}
String wordForm = buffer.toString();
// Get the synsets containing the wrod form
WordNetDatabase database = WordNetDatabase.getFileInstance();
Synset[] synsets = database.getSynsets(wordForm);
// Display the word forms and definitions for synsets retrieved
if (synsets.length > 0)
{
System.out.println("The following synsets contain '" +
wordForm + "' or a possible base form " +
"of that text:");
for (int i = 0; i < synsets.length; i++)
{
System.out.println("");
String[] wordForms = synsets.getWordForms();
for (int j = 0; j < wordForms.length; j++)
{
System.out.print((j > 0 ? ", " : "") +
wordForms[j]);
}
System.out.println(": " + synsets.getDefinition());
}
}
else
{
System.err.println("No synsets exist that contain " +
"the word form '" + wordForm + "'");
}
}
else
{
System.err.println("You must specify " +
"a word form for which to retrieve synsets.");
}
}

}

-----

error

java.lang.ExceptionInInitializerError

Caused by: java.lang.RuntimeException: Uncompilable source code - class TestJAWS is public, should be declared in a file named TestJAWS.java

at TestJAWS.<clinit>(Main.java:11)

Could not find the main class: TestJAWS. Program will exit.

Exception in thread "main" Java Result: 1

تم تعديل هذه المشاركة بواسطة herch في 13 مارس 2010 في 16:19

#2

كما هو واضح من خلال رسالة الخطأ، يجب أن تسمي الملف بنفس إسم ال class، أي أن إسم الملف يجب أن يكون TestJAWS.java وليس Main.java

والمرجو الكتابة بالعربية.

#3

الأخ الكريم/الأخت الكريمة

السلام عليكم ورحمة الله وبركاته

مرحباً بكم في منتدى الفريق العربي للبرمجة

نود تنبيهك أن العنوان غير مناسب.

الرجاء اختيار عنوان مناسب أكثر في مواضيعك القادمة، وهذا بمثابة إشعار للأهمية.

وفي حال التكرار سيتعرض موضوعك للإغلاق والحذف!!!

قواعد المشاركة

/index.php?showtopic=29343

شاكرين لكم حُسن تعاونكم

#4

شكرا لك أخي الكريم على ردك وتنبيهك

قمت بتعديل الاسم ولم يعمل البرنامج

لذا أرجو توضيح الفرق بين package,class, api وما هي افضل طريقة كي يعمل البرنامج هل المطلوب ان أنزل package ضمن النت بينز واذا كان كذلك كيف؟

شكرا

#5

ما هو الخطأ الذي يظهر، فجملة "لم يعمل البرنامج" لا تساعد كثيرا.

api تعني Application programming interface، أي مجموعة من ال classes وال interfaces التي تمكن المبرمج من عمل شيء ما. إبحث عن الكلمة في Wikipedia

إذا كنت لا تعرف معنى class فهذا مشكل كبير، ويجب أن تراجع الدروس الخاصة بالجافا

package هي فقط مجموعة من ال classes منظمة بشكل معين java packages

هل قمت بتحميل الملف jaws-bin.jar؟؟

لإضافته إلى المشروع في NetBeans، إضغط بالزر الأيمن للفأرة على المشروع، ثم اختر properties، في النافذة التي تظهر، إختر libraries، ثم اضغط على الزر add jar/folder واختر الملف jaws-bin.jar

#6

شكرا جزيلا ، هو هذا ما كنت احتاجه وهو كيفية اضافة الملف للمشروع. الان المشروع يعمل لكن يحتاج لاضافة باراميتر على ما اعتقد لانه نتيجة تشغيل المشروع هي

You must specify a word form for which to retrieve synsets.

شكرا على تفاعلك اخي الكريم

#7

الباراميتر الذي يحتاجه هو الكلمة :: التفيذ باستخدام

java TestJAWS computer

حيث computer هي الكلمة التي نريد البحث عنها في wordnet

تم تعديل هذه المشاركة بواسطة JDurrah في 13 مارس 2010 في 17:19

#8

لتمرير argument من خلال NetBeans: إضغط بالزر الأيمن للفأرة على المشروع، ثم اختر properties، في النافذة التي تظهر، إختر Run، ثم حدد قيمة ال argument في الخانة arguments.

أو من خلال سطر الأوامر كما قال الاخ JDurrah

#9

بارك الله فيكم جميعا لكنني حصلت على خطا مختلف ربما هناك مشكلة في برنانج نت وورد

Exception in thread "main" edu.smu.tspell.wordnet.impl.file.RetrievalException: Error opening index file: C:\WordNet\2.1\dic\index.sense (The system cannot find the path specified)

at edu.smu.tspell.wordnet.impl.file.SenseIndexReader.getInstance(SenseIndexReader.java:88)

at edu.smu.tspell.wordnet.impl.file.WordFormLookup.loadSynsets(WordFormLookup.java:273)

at edu.smu.tspell.wordnet.impl.file.WordFormLookup.getSynsets(WordFormLookup.java:230)

at edu.smu.tspell.wordnet.impl.file.WordFormLookup.getSynsets(WordFormLookup.java:172)

at edu.smu.tspell.wordnet.impl.file.FileDatabase.getSynsets(FileDatabase.java:87)

at edu.smu.tspell.wordnet.WordNetDatabase.getSynsets(WordNetDatabase.java:61)

at TestJAWS.main(TestJAWS.java:40)

Caused by: java.io.FileNotFoundException: C:\WordNet\2.1\dic\index.sense (The system cannot find the path specified)

at java.io.RandomAccessFile.open(Native Method)

at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)

at edu.smu.tspell.wordnet.impl.RandomAccessReader.<init>(RandomAccessReader.java:75)

at edu.smu.tspell.wordnet.impl.LineLocator.<init>(LineLocator.java:54)

at edu.smu.tspell.wordnet.impl.MultipleLineLocator.<init>(MultipleLineLocator.java:48)

at edu.smu.tspell.wordnet.impl.file.SenseIndexReader.<init>(SenseIndexReader.java:101)

at edu.smu.tspell.wordnet.impl.file.SenseIndexReader.getInstance(SenseIndexReader.java:83)

... 6 more

#10

هل قرأت الدرس الذي أخدت منه المثال ؟؟

يجب أن تحمل الملف الخاص ب wordnet،ثم تحدد مكانه من خلال تحديد الخاصية wordnet.database.dir التي تمثل المجلد الذي يوجد فيه الملف

System.setProperty("wordnet.database.dir", "C:/Program Files (x86)/WordNet/2.1/dic/");	//غير المسار
#11

أخي الكريم

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

System.setProperty("wordnet.database.dir", "C:/WordNet/dic/");

لكن نفس الخطأ ظهر مرة أخرى وهو

Error opening index file: C:\WordNet\dic\index.sense

#12

السلام عليكم.

إليك، هذا مثال كامل عن wordnet باستخدام المكتبة، يعمل 100%، أنا استخدمته في أحد المشاريع.

src-jaws-wordnet.tar.gz

#13

أخي الحبيب

كل الشكر والتقدير لمجهودك ، كل المشكلة كانت في السطر الذي يحدد المسار أنا كنت قد كتبته بالطريقة التالية:

System.setProperty("wordnet.database.dir", "C:\WordNet\dict");

والمشكلة حلت عندما اعتمدت الطريقة التي استخدمتها في برنامجك

System.setProperty("wordnet.database.dir", "C:\\WordNet\\dict");

بارك الله في حسناتك

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