我正在开发依赖第三方库的软件。由于许可协议,此库不能与软件一起发货,用户在启动程序时必须已在本地安装库。
有没有办法检查这个特定的库是否存在于类路径中并且可以加载?如果不是,我想提供一个对话框,允许用户指向该位置,并动态地将此位置添加到类路径。
感谢您的帮助!
答案 0 :(得分:3)
试试这个:
try {
Class<?> clazz = Class.forName("com.acme.SecretClass");
} catch (ClassNotFoundException e) {
// Show dialog
}
答案 1 :(得分:2)
我知道计算时间最快的方法是:
public class ClazzUtil {
public static boolean isClassnameAvailable(String clazzName) {
try {
Class.forName(clazzName, false, ClazzUtil.class.getClassLoader());
} catch (LinkageError | ClassNotFoundException e) {
return false;
}
return true;
}
}
答案 2 :(得分:1)
如果某个类在运行时不存在,则会抛出ClassNotFoundException。 您可以通过以下方式检查。
try {
Class cls = Class.forName("yourClassName");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
答案 3 :(得分:-1)
刚刚解决了我的代码中的问题,晚餐很有用,没有引发异常。
$smtp = new-object Net.Mail.SmtpClient("yourDomain.com")
$email = New-Object System.Net.Mail.MailMessage
$email.From = "fromEmail@email.com"
$email.To.Add("ToEmail@email.com")
$email.Subject = "Enter your Email Subject"
$email.Body = "Enter the body of your email"
$email.Priority = [System.Net.Mail.MailPriority]::High
$smtp.Send($email)