【发布时间】:2012-06-14 23:49:40
【问题描述】:
我想运行Test2包中Main.class的构造函数,位于文件夹C:\classes\
这是我正在使用的代码。当它试图将它变成一个类时,它会抛出一个类未找到异常。然后一旦它成为类对象的一部分,构造函数会自动运行,还是我必须以某种方式实例化它? Test2 作为文本输入到此代码中。
if (Main.os.equals("Windows"))
{
String path = "C:\\classes\\";
}
else
{
String path = "~/classes/";
}
File file = new File(path);
try
{
URL url = file.toURI().toURL();
URL[] urls = new URL[]{url};
Main.print("Stage 1");
ClassLoader cl = new URLClassLoader(urls);
Main.print("Stage 2");
Class cls = cl.loadClass(text + ".Main");
Main.print(text + " was loaded into memory.");
close();
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
【问题讨论】:
-
能否把这两个类的完整代码贴出来?
-
这是与问题相关的唯一部分...此代码位于对话框的 ActionListener 代码中,该对话框为其提供变量文本。另一个类只是在构造函数中执行一个 hello world println。
-
这并不完全正确。我们还需要 Main 的包和类声明。这些很重要。此外,我们需要
text的值。我们可以从您的评论中推断出文本是“Test2”,但我们不知道! -
都是正常的东西,打包Test2;公共类主。通过执行 String text = name.getText(); 将文本设置为字符串;其中 name 是文本框。
标签: java class classloader external classnotfoundexception