我有一个应用程序,其main()使用ServiceLoader和reflection来生成匹配类的“报告”。但是,我无法找到将外部.jar文件添加到调试程序的类路径的简单方法。在Netbeans 8之前,答案是“Project-> Libraries-> Add Jar”。但Netbeans 8中不再存在该选项。工具 - >库似乎应该是相同的东西,但我看不到如何从那里添加库,以使其在调试对象类路径上可用。我唯一看到的是将.jar文件安装到本地maven repo中,将其包装在工件中,并使其成为项目依赖项。但我不希望这是对项目本身的长期更改,我只想为单个调试会话添加一个jar。
答案 0 :(得分:0)
我从来没有找到只涉及Netbeans设置的答案。有一些方法可以将maven jar-only工件安装到我的本地仓库并在pom.xml中引用它们,但这意味着更改项目以更改jar。但是,我确实找到了一个技巧,可以在运行时使用类加载器上的反射来扩充类路径,这很有效。假设args [i]包含要注入的jar路径:
File file = new File(args[i]);
Method method = URLClassLoader.class.getDeclaredMethod("addURL", new Class[]{URL.class});
method.setAccessible(true);
method.invoke(ClassLoader.getSystemClassLoader(), new Object[]{file.toURI().toURL()});