0
我的程序被设计为从一个可运行的jar文件启动,如果需要的话将所有东西都设置好,然后在另一个jar文件中加载一个类来启动程序。这允许自我更新,重新启动等。嗯,类加载代码我似乎有点时髦。以下是我用来加载程序的代码。这是不正确的使用还是不好的做法?这是不正确的使用还是类加载器的不良做法?
try {
Preferences.userRoot().put("clientPath", Run.class.getProtectionDomain().getCodeSource().getLocation().toURI().toString()); //Original client location; helps with restarts
} catch (URISyntaxException e1) {
e1.printStackTrace();
}
try {
Preferences.userRoot().flush();
} catch (BackingStoreException e1) {
e1.printStackTrace();
}
File file = new File(path); // path of the jar we will be launching to initiate the program outside of the Run class
URL url = null;
try {
url = file.toURI().toURL(); // converts the file path to a url
} catch (MalformedURLException e) {
e.printStackTrace();
}
URL[] urls = new URL[] { url };
ClassLoader cl = new URLClassLoader(urls);
Class cls = null;
try {
cls = cl.loadClass("com.hexbit.EditorJ.Load"); // the class we are loading to initiate the program
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
cls.newInstance(); // starts the class that has been loaded and the program is on its way
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
把它在一个try块一样,似乎有点普通,但你可以从例外五异常的类型,是否正确? – Frizinator
@StevenTylerFrizell正确,您采取的行动在每种情况下都是相同的,所以您不需要不同的处理程序。 –