0 امتیاز
قبل در برنامه نویسی توسط (10 امتیاز)
ویرایش شده قبل توسط

من دارم در حین runtime یک کلاسی رو لود میکنم که این کلاس در دایرکتوری d:\operators.Operator قرار داره(operators) نام پکیج هست.ولی وقتی برنامه رو run میکنم با استثنا ClassNotFoundException مواجه میشم (برنامه اصلی من در دایرکتوری d:\project\main.MathClass قرار داره) . من به این صورت لود میکنم

                        //Find operator path
			String rootPath = System.getProperty("user.dir");
			int endOfSubstring = rootPath.indexOf("\\");
			String operatorPath = rootPath.substring(0,endOfSubstring);
			operatorPath = operatorPath + "operator";

			//Load operators from another file
			File operatorFile = new File(operatorPath);
			URL operatorFilePath = operatorFile.toURL();          
			URL[] operatorFilePaths = new URL[]{operatorFilePath};
			ClassLoader operatorsLoader = new URLClassLoader(operatorFilePaths);
			System.out.println(operatorFilePaths);
			
			Class operatorInterface = operatorsLoader.loadClass("operators.Operator");

کسی میدونه علتش چیه؟

قبل توسط (302 امتیاز)
اون sysOut که گذاشتید چی برمیگردونه؟
قبل توسط (10 امتیاز)
[Ljava.net.URL;@4ec4f498
قبل توسط (10 امتیاز)
@ ehsolimo شما میدونید علتش چیه؟
قبل توسط (302 امتیاز)
فکر میکنم وقتی مسیر اصلی برنامه رو ساب استیرنگ میکنید، باید فقط \\:D بمونه! یعنی دیگه نباید operator رو اضافه کنید به مسیر. مگه اینکه فایل کلاستون توی یه فولدر دیگه باشه(فولدر پکیج)! که اینجوری که گفتین اینطور نیست.
قبل توسط (10 امتیاز)
پوشه اصلی برنامه در این مسیر هست : d:\project\main.MathClass
پوشه اوپراتورها در این مسیر هست : d:\operators.Operator
در دو فولدر جداگانه هستن ولی در یک درایو

1 پاسخ

0 امتیاز
قبل توسط (302 امتیاز)
ویرایش شده قبل توسط

File file = new File("..\\..\\operators");

try {
    URL url = file.toURL();
    URL[] urls = new URL[]{url};
    ClassLoader cl = new URLClassLoader(urls);

    Class cls = cl.loadClass("operators.Operator");
} catch (MalformedURLException e) {
} catch (ClassNotFoundException e) {
}

 

قبل توسط (10 امتیاز)
یعنی چه طور؟می دونید برنامه من یکم طولانیه این فقط یه بخشی از کد من هست
قبل توسط (10 امتیاز)
ممنونم مشکل کد رو پیدا کردم

سوالات مشابه

0 امتیاز
2 پاسخ 736 بازدید
0 امتیاز
1 پاسخ 309 بازدید
0 امتیاز
0 پاسخ 87 بازدید
+1 امتیاز
1 پاسخ 402 بازدید
+1 امتیاز
1 پاسخ 191 بازدید
+1 امتیاز
1 پاسخ 287 بازدید
...