问题标签 [urlclassloader]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2223 浏览

java - 我将如何解决这个类加载器问题?

让我先说我在 Java 方面不是最好的,所以我可能错过了一些非常简单的东西......

我正在开发一个插件系统,并且在 Eclipse 中一切正常,但当我实际在它之外启动小程序时却没有。

我正在尝试.class从目录加载文件并执行它,我知道它为什么不起作用我只是不知道该怎么做才能解决它。

问题是 Eclipse 在类路径中引用了小程序本身,但它没有在 eclipse 之外的类路径中被引用,我无权访问-cpor -classpath,我只能通过旨在加载的启动器启动它具有固定类路径的 jar。

关于如何解决这个问题的任何想法?

装载机代码:

插件代码:

这个问题已经困扰我一个星期了,我不知道该怎么办。:/

0 投票
2 回答
605 浏览

classloader - 在 Glassfish 3.1 上使用自定义处理程序获取 NoClassDefFoundError

问题

  1. 我们的网络应用程序创建了一个java.net.URL将我们的自定义实现传递URLStreamHandler给构造函数。
  2. 在该 URL 上,我们调用url.openConnection().
  3. java.net.URL代码调用我们的openConnection()处理程序。
  4. 在这一点上,我们得到了NoClassDefFoundError一个处理程序使用的类。

Glassfish 3.1 会发生这种情况,但 Tomcat、WebLogic 和 JBoss 不会发生这种情况。(此外,它曾经在旧版本的 Glassfish 上工作。)

我试过的

我尝试添加一个glassfish-web.xml来告诉 Glassfish 首先从 Web 应用程序加载类(如预期的那样),但这并不能解决问题。

我该如何解决这个问题,为什么会这样?

0 投票
1 回答
721 浏览

java - 在运行时加载 JAR 文件类时出错

我正在尝试将 JAR 文件添加到类路径并在运行时从 JAR 文件加载所有类。这是我为此任务编写的代码(此类扩展 URLClassLoader)

但是,即使通过 getURLs 确实表明 jar 文件已添加到此加载器中,我仍不断收到类实体的 ClassNotFoundException。

这个问题的原因是什么?谢谢

0 投票
1 回答
453 浏览

java - 似乎无法使用 UrlClassLoader 加载我的课程

所以我做了一个超级简单的文件,然后把它上传到我的服务器上:

其中有 testApp.jar 和一个充当 bin 的文件夹。我已经尝试了一些方法来解决这个问题,但我不断收到:线程“main”中的异常 java.lang.ClassNotFoundException: com.testApp.Main

我找到这个的代码是

我的最终目标只是运行该文件的主要方法,并且正在启动的文件将有一个简单的“Hello World”摆动窗口。

谢谢

0 投票
1 回答
2351 浏览

java - 允许java程序自动更新自身的小类

目标是让一个简单的 Java 类启动一个 jar 主类。当主类完成时,可以查询它是否要重新加载。通过这种方法,它可以自己热更新并重新运行自己。

Launcher 是通过 URLClassloader 加载 jar,然后卸载/重新加载更改后的 jar。jar 可以通过修改 Launcher 或通过提供的 dos/unix 脚本来更改,该脚本被调用以将新 jar 替换为旧 jar。

整个程序如下。经过测试,它似乎可以顺利工作。

java Launcher -jar [path_to_jar] -run [yourbatchfile] [-runonce]?选修的]

1) Launcher 在你的 jar 文件中查找“Main-Class”属性,这样就不需要给它实际的类来运行。

2) 它将调用 'public static void main(String[] args)' 并将您在命令行中提供的剩余参数传递给它

3) 当您的程序完成时,启动器将调用您的程序方法“public static boolean reload()”,如果结果为“真”,这将触发重新加载。

4) 如果你指定了-runonce,那么程序将永远不会重新加载。

5) 如果您指定了 -run [batchfile],那么批处理文件将在重新加载之前运行。

我希望这对某些人有所帮助。

快乐编码!

0 投票
1 回答
3525 浏览

java - 动态加载jar

在我的 java 应用程序中,我将一个 jar 文件(使用 Maven shade 插件打包)读入一个字节流。在 jar 中定义了一个入口点类POM.xml

如何将此类动态加载到我的 java 应用程序中?

更新:

  • jar 作为字节流加载,不驻留在文件系统或 URL 中
0 投票
2 回答
353 浏览

java - 从任意位置加载自定义类

我在 Java 中的类加载有一些问题。在我的项目中,我试图从任何地方动态加载一个类。但是,我目前无法加载硬编码的文件,并且经过 6 小时的谷歌搜索和堆栈溢出检查后仍然一无所知。

我怀疑我正在加载的类的包名有问题。我的目标是在project/resources/dynamicFolderNonInClassPath/loadThis目录中加载 Class LoadAClass.java 。由于我将我的 URLClassLoader 设置为上面的文件夹,因此它的包已设置为

但是我不断收到一个类未找到异常。

我尝试了不同的组合,例如直接将 URLClassLoader 设置为文件或将完整的/resources/dynamicFolderNonInClassPath/loadThis作为 URL 但到目前为止没有成功。

有圣诞气氛的人看到问题了吗?我对这个功能似乎有一些误解,我希望看到它得到修复。

0 投票
1 回答
2335 浏览

java - 动态修改类路径

我想在下面添加配置文件/home/nameuser/.myProject/conf在运行时将配置文件添加到类路径中。

我尝试使用URLClassLoader但没有成功。

或者

0 投票
4 回答
380 浏览

java - Java URLClassLoader 无法识别字符串

我有一个非常奇怪的问题。

我正在使用 URLClassLoader 从目录中动态导入文件。如果我使用文字字符串,代码可以正常工作,如果我将变量用于文字字符串,代码也可以正常工作,但这不是我需要的。

我需要的是能够做到这一点:

但即使“name”是一个有效的字符串并且等于“TestClass”,它也不起作用。

编辑:我得到错误:

怎么了?

0 投票
1 回答
655 浏览

java - URLClassLoader 无法在 Linux 上加载依赖项

我正在使用 URLClassLoader 加载类。

尽管我传递的文件的名称已成功加载,但对于它所引用的类,则会为这些类抛出 NoClassDefFoundError。这两个类都是不同 jar 文件的一部分。

更奇怪的是,同一段代码在 Windows 上运行良好,但在 Linux 上却抛出错误。

这是我正在使用的代码:

现在,如果我将要加载的类传递为 ABMyClass1,它会成功加载,但无法加载单独的 jar 文件中的 ABMyClass2。