JLS说resolveClass方法应该验证所有符号链接 该规范允许在链接活动时实现灵活性 (并且由于递归,因此会进行加载),前提是 尊重Java编程语言,即类或接口完全是 在初始化之前进行验证和准备,以及在链接期间检测到错误 被抛出到程序中执行该操作的某个位置 可能需要链接到错误所涉及的类或接口。 因此,我尝试创建引用第一个项目中另一个类的类T,并使用自定义类加载器创建第二个项目,该类加载器加载类T,但不加载另一个引用的类。 public class T { public static AnotherClass …

2020年11月29日 0条评论 19点热度 阅读全文

我尝试使用one-jar打包程序来简化部署过程的项目遇到问题。没有包装,一切工作正常,并且日志记录配置已完美加载,但是在包装中,仅应用了部分配置。 因此,这是我使用的logging.properties: handlers= java.util.logging.ConsoleHandler, java.util.logging.FileHandler .level= INFO java.util.logging.FileHandler.pattern = C:\\MyPath\\logging.csv java.u…

2020年11月27日 0条评论 26点热度 阅读全文

我开发了一个库,它的一种方法具有以下形式: void setVars(def script) { // script parameter is an instance of groovy.lang.Script loaded by Rootoader // MyBinding is part of the lib and extends groovy.lang.Binding script.setBinding(new MyBinding()) } 现在,如果该库用作jar文件,我将得到未定义的方法异常,因为脚本对…

2020年11月19日 0条评论 23点热度 阅读全文

我在我的项目中使用了一个我无法控制的外部库。我正在用罐子。这个外部库有一个类,我在该类上调用static方法,该方法与某个外部系统建立连接。 如果连接到外部系统时出现问题,则此外部库类将引发java.lang.exception。 尽管我知道使用Throwable捕获异常是一种不好的做法,但我还是使用Throwable并捕获了异常,因为我想继续尝试连接外部应用程序,因此需要继续调用此外部类方法。 但是,当它第一次失败时,Java会在内部卸载此类。因为当我再次调用该方法时,java.lang.NoClassDefFo…

2020年11月18日 0条评论 27点热度 阅读全文

我有2个 jar ,我们称它们为a.jar和b.jar。 b.jar取决于a.jar。 在a.jar中,我定义了一个类,我们称它为StaticClass。在StaticClass中,我定义了一个静态块,调用了一个名为“init”的方法: public class StaticClass { static { init(); } public void static init () { // do some initialization here } } 在b.jar中,我有一个main,因此在main中,我希望已经…

2020年11月17日 0条评论 37点热度 阅读全文

我一直在处理分支机构不完善的项目,这些项目给我留下了很多依赖,其中包括几个具有完全相同的完全合格名称的类。因此,我得到了AbstractMethodError来在错误的实现上调用方法。我的解决方案是重命名工作正常的类包。 但是,我现在想知道是否有更好的方法-我们可以唯一地标识Java类实现吗? 解决方案如下: 您可以检查两个类(或两个对象的类)是否相同: o1.getClass() == o2.getClass() 当类相同时(即由相同的类加载器加载),此表达式就是 true。 AFAIK无法确定运行时是否从特定文…

2020年11月17日 0条评论 51点热度 阅读全文

我正在使用getClass().getResourceAsStream()加载配置文件形式的应用程序类路径。 使用apache tomcat服务器启动应用程序时将加载文件。 当我在服务器运行时对配置文件进行一些更改时,它没有选择更改。 当应用程序运行时,我可能需要进行一些更改。apache tomcat是否可以在更改配置文件后加载它? 解决方案如下: 我假设您正在重新读取文件,但是即使更改了文件,您肯定也看到了相同的内容? 现在,我将在每次轮询文件时打印出内容,因此您可以看到a)文件正在被轮询,b)内容正在/未更改…

2020年11月14日 0条评论 25点热度 阅读全文

我正在尝试使用以下类加载器在我的maven插件中加载特定的类: public ClassLoader getClassLoader(MavenProject project) { try { List classpathElements = project.getCompileClasspathElements(); URL urls[] = new URL[classpathElements.size()]; for ( int i = 0; i < classpathElements.size(); ++…

2020年11月12日 0条评论 18点热度 阅读全文

我对gradle尤其是多模块gradle项目很陌生,因此我创建了一个具有以下项目结构的小示例项目主要 *src *tests *build.gradle *settings.gradle *Subproject1 +src +tests +build.gradle 因此,当我尝试从主(根)项目中的类加载Subproject1中的类时,找不到该类,我会以为根项目的类路径也包含子项目类。 我在这里做错了什么,或者我应该通过哪些 Material 来理解这一点? 当前的settings.gradle文件, rootPro…

2020年11月8日 0条评论 18点热度 阅读全文

我用这个人: org.apache.commons.jci.compilers.JavacJavaCompiler 我有一个jci课: public void compile() { sourceDir = new File("java"); sources = new String[] { "test/HelloWorld.java" }; target = new File("result"); JavacJavaCompilerSettings settings = new JavacJavaCompiler…

2020年11月6日 0条评论 30点热度 阅读全文