国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

【Java】如果運行時依賴類找不到,程序還能不能運行?

2019-11-06 08:11:58
字體:
供稿:網(wǎng)友

java編程中,有這樣一個問題:類A引用了類B,那么如果運行時沒有類B,類A會不會調(diào)用成功,而不拋異常?

答案是,有可能運行成功,而不拋異常。

例子1:

ClassA.java

package com.hf.cp.test;import com.hf.cp.test2.ClassB;public class ClassA {	public static void main(String[] args) {		//new ClassB(); 		System.out.PRintln("TEST IS OK!");	}		public void test2(){		new ClassB();	}}ClassB.java

package com.hf.cp.test2;public class ClassB { 	}在編譯成功后,將class輸出目錄(如bin目錄)中的ClassB.class去除掉,然后執(zhí)行:

K:/workspace2/codeprotect/bin>java com.hf.cp.test.ClassATEST IS OK!例子2:

將ClassA的main方法中添加一句對ClassB的引用:

new Class();

詳細的代碼見下文。

ClassA.java

package com.hf.cp.test;import com.hf.cp.test2.ClassB;public class ClassA {	public static void main(String[] args) {		new ClassB(); 		System.out.println("2TEST IS OK!");	}		public void test2(){		new ClassB();	}}結(jié)果運行出錯:

K:/workspace2/codeprotect/bin>java com.hf.cp.test.ClassAException in thread "main" java.lang.NoClassDefFoundError: com/hf/cp/test2/ClassB        at com.hf.cp.test.ClassA.main(ClassA.java:8)Caused by: java.lang.ClassNotFoundException: com.hf.cp.test2.ClassB        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)        at java.security.accessController.doPrivileged(Native Method)        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)        ... 1 more

這2個例子說明:

運行期,主類對引入類并不是強依賴,如果運行時未使用依賴類,則雖然依賴類缺失,主類也照樣可以運行;若運行時使用了依賴類,則依賴類必須存在,方可正常運行。

注意:在編譯期主類對引用類具有強依賴,找不到則編譯不通過。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 岗巴县| 那曲县| 偃师市| 溧水县| 景谷| 濮阳市| 东乌珠穆沁旗| 绍兴市| 织金县| 乐至县| 新河县| 峨山| 安顺市| 龙州县| 新乐市| 南通市| 宜兰市| 巴里| 澄城县| 舞阳县| 荔波县| 西青区| 绥中县| 利川市| 哈尔滨市| 鹤壁市| 犍为县| 开原市| 洛浦县| 板桥市| 梁平县| 靖安县| 绥棱县| 高雄市| 綦江县| 时尚| 手机| 盐津县| 新乡市| 集安市| 高邑县|