Tag: classpath

URLClassLoader和package-private方法的可访问性

我有一个类Formula ,位于javaapplication4包中,我使用URLClassLoader加载。 但是,当我从位于同一个包中的另一个类Test1调用它时,我无法访问其具有默认访问修饰符的方法(我可以访问公共方法)。 我得到以下exception: java.lang.IllegalAccessException:类javaapplication4.Test1无法使用修饰符“”访问类javaapplication4.Formula的成员 如何从同一个包中访问在运行时加载的类的包私有方法? 我想使用不同的类加载器是一个问题,但不确定为什么(我已经设置了URLClassLoader的父级)。 SSCCE再现问题(Windows路径) – 我想问题是在loadClass方法中: public class Test1 { private static final Path TEMP_PATH = Paths.get(“C:/temp/”); public static void main(String[] args) throws Exception { String thisPackage = Test1.class.getPackage().getName(); String className = thisPackage + “.Formula”; //javaapplication4.Formula String body = “package ” + thisPackage + “; ” + “public class Formula { […]

如何在不使用-cp开关的情况下在Groovy中自动加载数据库jar?

我想简化我对执行Oracle数据库调用的Groovy脚本的执行。 如何将ojdbc jar添加到默认的类路径中,以便我可以运行: groovy RunScript.groovy 代替: groovy -cp ojdbc5.jar RunScript.groovy

如何向classpath添加资源

如何将文件夹(例如包含arts的资源文件夹)添加到netbeans项目的类路径中? 我设法通过编辑项目的NB生成的jar文件(即它的MANIFEST.MF文件+手动复制资源)手动完成,但应该有一种方法告诉netbeans也要记住资源,不是吗? 文件夹结构如下所示: /project/art/ /project/dist/lib/ /project/dist/art/ /project/dist/project.jar /project/lib/ /project/src/ 我不想将艺术品装入jar子里,因为我希望这种艺术很容易交换。 如果我将art文件夹添加到src文件夹,那么NB编译正常,但艺术资源最终在jar中。 将art文件夹添加到netbeans项目库(属性 – >库 – >添加JAR /文件夹)似乎不起作用,因为我最终得到一个错误’… \ project \ art是一个目录或不能读。 不要复制库。’ 这反过来又阻止了真正的库文件夹被复制。 有任何想法吗? 最好的问候克里斯 2基于来自gpeche的注释进行观察:a)在“运行”选项卡中指定附加资源文件夹而不是在项目属性的“编译”选项卡中指定 – >库似乎没有太大区别Netbeans(我目前正在使用6.9.1)。 输出(以及错误)保持不变,即根本不会复制任何内容: Created dir: C:\Users\Chrisi\Desktop\vocabulary\VocabularyTrainer\dist C:\Users\Chrisi\Desktop\vocabulary\VocabularyTrainer\art is a directory or can’t be read. Not copying the libraries. Not copying the libraries. Building jar: C:\Users\Chrisi\Desktop\vocabulary\VocabularyTrainer\dist\VocabularyTrainer.jar 另一个有趣的方面是,在“库”面板的“帮助”菜单中,没有明确提及有关文件夹的库。 是否有可能,Netbeans中的按钮被错误命名,只允许真正的jar? b)将资源文件夹添加到Libraries列表确实会产生影响,即向MANIFEST.MF添加另一个条目。 虽然 […]

在Tomcat 8中将外部资源添加到类路径

我有一个Tomcat应用程序,需要引用应用程序外部的一些属性文件。 通常这些存储在C:\PROJECT_NAME\conf\等特定位置的本地计算机上。 在Tomcat 7中,这可以通过在/META-INF/放置一个context.xml文件来实现,该文件使用VirtualWebappLoader实际上将此位置添加到应用程序类路径,如下所示: 如何在Tomcat 8中实现同样的function?

来自远程目录的Java Class.forName()

我目前正在使用Class.forName()加载Java类来加载它。 clazz = Class.forName(“interfaces.MyClass”); 但是现在我想从不同的目录加载类,我试图设置classpath clazz = Class.forName(“-cp \”C:/dir\” distantinterfaces.DistantClass”); 没有成功和ClassNotFoundException 。 远程class级的完整路径是: C:/dir/distantinterfaces/DistantClass.class

为什么System.setProperty()不能在运行时更改类路径?

我正在提到有关以编程方式更改类路径的问题 。 我阅读并发现在System类下有一些函数作为getproperties,我们可以在其中检索属性,然后也可以使用setProperties()进行设置。 我得到的答案是,它不会工作。 我自己没试过,但是,我正在接听电话。 只是为了澄清一下,如果这些setProperty()和getProperty()方法在运行时无法改变它们,那么为什么会这样。 或者这仅适用于classpath属性? 如果有人可以提供他们真正有用的场景,我将不胜感激?

是否可以在javac(JDK 9)中混合使用–class-path和–module-path?

当我编译一个依赖于我之前编译的其他模块的模块时,我必须指定–module-path 选项。 这使我依赖的模块可见。 但与此同时,我还想让一些非模块化的Jar文件可见。 但是,如果不使它们成为自动模块,只需在–module-path 旁边指定–class-path some.jar ,那么javac似乎忽略了claspath并抛出“package yyy not found”和其他“未找到”错误。 我可以理解在相同(编译)时使用–class-path和–module-path是非法的,但是javac并没有以任何方式警告我。

Java – 设置类路径

我的示例应用程序告诉我: No ‘qtjambi-deployment.xml’ found in classpath, loading libraries via ‘java.library.path’ 我希望我的应用程序使用qtjambi-deployment.xml ,但遗憾的是在IntelliJ IDEA 10.5找不到合适的设置。 有人能帮帮我吗?

在java 9下运行时将jar添加到类路径

直到java9在运行时通过编程方式将所有人使用的外部jar添加到类路径: URLClassLoader sysloader = (URLClassLoader) ClassLoader.getSystemClassLoader(); Method method = URLClassLoader.class.getDeclaredMethod(“addURL”, new Class[]{URL.class}); method.invoke(sysloader, new Object[]{file.toURI().toURL()}); 现在用java9我们有问题: 线程“main”中的exceptionjava.lang.ClassCastException:java.base / jdk.internal.loader.ClassLoaders $ AppClassLoader无法强制转换为java.base / java.net.URLClassLoader URLClassLoader在Java 9中不再起作用。现在在jdk9下如何以编程方式在运行时向类路径添加外部jar?

我收到“java.lang.ClassNotFoundException:com.google.gson.Gson”错误,即使它是在我的类路径中定义的

我正在尝试使用gson-1.6.jar解析一些我正在使用gson-1.6.jar的JSON对象字符串。我将它放在与其他.jars相同的位置,并将它添加到我在eclipse中的buildpath中。 其他库在我添加它们时运行正常,我可以毫无问题地使用它们,但是当我尝试创建JSON对象时,我得到了名义错误。 我已经通过这个错误查看了其他问题,但我找不到一个不涉及我尝试过的东西的解决方案或者一些不相关的东西。 我使用以下方法将其导入顶部附近: import com.google.gson.Gson; 然后在静态函数中使用它,如下所示: Gson g = new Gson(); 这是我的eclipse生成的类路径文件[Path]替换实际路径: 以及我的构建路径窗口: 我此时有点失落。 我已经尝试了谷歌和post基本上只是说添加到您的构建路径。 有人有什么想法吗? 编辑:更多信息 引用com.google.gson.GSON的代码由jsp用作bean。 从jsp调用此函数,一旦执行该函数就会发生错误。 该函数的第一行是: Gson g = new Gson(); 它似乎编译和部署正常,但当它执行时,我收到错误消息。 谢谢