package OSI.OPE.AOPM.VECS.IDUQ.OVU.PQE.flash; import java.awt.FileDialog; import java.awt.Frame; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; //import ME.APM.VSQ.DetaBuy; import MVQ.filenameFilter.TXTFilter; import SVQ.stable.StableAnnotation; import OSI.OPE.OEQ.MCQ.OVU.PQE.osgi.OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI; //作者 +著作权人: 罗瑶光,浏阳 public class GUISample_XCDX_CreateMapAddPlugin { @SuppressWarnings({ "deprecation", "static-access" }) public static void executeAddPlugin(GUISample gUISample) { String jarCategoryLink= ""; FileDialog filedialog= new FileDialog(new Frame() , StableAnnotation.ATTENSION_LOAD_HISTORY , FileDialog.LOAD); filedialog.setFilenameFilter(new TXTFilter (StableAnnotation.FILE_FORMAT_ETL)); filedialog.setVisible(true); jarCategoryLink= filedialog.getDirectory(); //System.out.println(jarCategoryLink); if(null== jarCategoryLink|| jarCategoryLink.isEmpty() || jarCategoryLink.contains (StableAnnotation.FILE_FORMAT_JAR)) { System.out.println(StableAnnotation.ATTENSION_RECHOICE); return; } File file= new File(jarCategoryLink); if(file.isFile()) { System.out.println(StableAnnotation.ATTENSION_FILE_CHOICE); return; } File[] files= file.listFiles(); Here: for(int i= 0; i< files.length; i++) { gUISample.rightBotJTextPane.validate(); gUISample.getContentPane().validate(); URLClassLoader loader = null; try { loader = new URLClassLoader(new URL[]{ files[i].toURL() }); } catch (MalformedURLException e2) { e2.printStackTrace(); } String filename= files[i].getName().replace (StableAnnotation.FILE_FORMAT_JAR , StableAnnotation.STRING_EMPTY); if(!filename.contains("OSI.OSU.")) { continue Here; } /* 源头: 见JDK 官方文档 的classloader 描述 //如下注释2行代码 * refer https://www.cnblogs.com/chinaxin/p/3678442.html * 这小伙子以后有前途。哈哈 //Class myclass = loader.loadClass("hand.java.loadjar * .TestClass"); //Gene new object //Object myobject = myclass.newInstance(); */ //因为按照标准格式函数命名, 因此做了首字母的大写变换 //, 准备调试下.罗瑶光 String[] filenameSplit= filename.split("\\."); String lastName= filenameSplit[filenameSplit.length- 1]; String FirstCharOfLastName= (""+ lastName.charAt(0)).toUpperCase(); String NewlastName= FirstCharOfLastName+ lastName.subSequence(1 , lastName.length()); System.out.println(filename); Class myclass = null; // 数组 //尾组 //首字母 大写 //filename= (""+ filename.split("\\.")[filename.split("\\.") // //.length- 1].charAt(0)).toUpperCase(); //System.out.println(filename.replace(filename.split(".") //.length, newChar)filename.split(".").length); try { String className= filename+ "."+ NewlastName + StableAnnotation.NODE_NODE_INTERFACE; System.out.println(className); myclass= loader.loadClass(className); } catch (ClassNotFoundException e1) { ////增加小写识别一次,兼容老的插件。 //FirstCharOfLastName= (""+ lastName.charAt(0)); //NewlastName= FirstCharOfLastName+ lastName.subSequence(1 //, lastName.length()); //System.out.println(filename); //String className= filename+ "."+ NewlastName // + StableData.NODE_NODE_INTERFACE; //System.out.println(className); //try { // myclass= loader.loadClass(className); //} catch (ClassNotFoundException e) { // // TODO Auto-generated catch block // e.printStackTrace(); //} e1.printStackTrace(); } Object myobject= null; try { myobject= myclass.newInstance(); } catch (InstantiationException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } //我准备之后设计成病毒式热插拔,因为绕过虚拟机的思想涉及情报学特工 //和计算机病毒领域 //,害怕国家相关安全体系管控,暂时不研发。 OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI _OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI = (OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI) myobject; if(gUISample.nodeReflection.containsKey (_OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI .SQ_OSU_MSQ_OSU_AVQ_ASQ_SQ_VPC_PCS)) { gUISample.rightBotJTextPane.setText ("请勿重复添加,节点已存在" + System.currentTimeMillis()); continue Here; //return; } gUISample.nodeReflection.put (_OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI .SQ_OSU_MSQ_OSU_AVQ_ASQ_SQ_VPC_PCS, null); _OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI.register (gUISample.tableData_old, gUISample.text, gUISample.u , gUISample._A, gUISample.pos); try { if(_OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI .SQ_OSU_MSQ_OSU_AVQ_ASQ_SQ_VPC_PCS.contains("添加") && _OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI .SQ_OSU_MSQ_OSU_AVQ_ASQ_SQ_VPC_PCS.contains("页")) { gUISample.u.searchList.add (_OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI); //memory increment } _OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI.IMP_PSU(); gUISample.rightBotJTextPane.setText("节点:" + _OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI .SQ_OSU_MSQ_OSU_AVQ_ASQ_SQ_VPC_PCS + "已经更新成功"+ System.currentTimeMillis() + "\r\n"+ gUISample.rightBotJTextPane.getText()); gUISample.rightBotJTextPane.validate(); gUISample.thread.sleep(100); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } gUISample.nodeView.first= gUISample.nodeView.link .addNode(gUISample.nodeView.first , _OSU_AVQ_ASQ_ASQ_OCQ_OSI_PCI_PCU_MCI_MCU_MSI); } gUISample.nodeView.U_Tree(); gUISample.getContentPane().validate(); } }