相关疑难解决方法(0)

如何加载Java Bootstrap类加载器?

在java中,据说所有类都是由类加载器加载的.

首先,bootstrap类加载器加载所有rt.jar类.

所以我仍然感到困惑,因为Classloader也是一个类,所以谁将加载这个BootStrapClassloader.

请解释一下.

java bootstrapping classloader

33
推荐指数
3
解决办法
3万
查看次数

如何在Java中获取调用类的名称?

我想在这件事上提供一些帮助,

例:

public class A {

    private void foo() {

          //Who Invoked me

    }

}

public class B extends A { }

public class C extends A { }

public class D {

     C.foo();

}
Run Code Online (Sandbox Code Playgroud)

这基本上就是这种情况.我的问题是方法foo()怎么知道谁在调用它?

编辑:基本上我试图做一个数据库层,在类AI中将创建一个将生成SQL语句的方法.通过获取调用类的所有公共属性的值来动态生成此类语句.

java callstack

20
推荐指数
3
解决办法
2万
查看次数

包含Jars的Jars中的类的替换系统类加载器

到目前为止,我看到的自定义ClassLoader示例涉及子类化URLClassLoader,并使用该特定实例加载资源中的类.

我徒劳地试图寻找替换SystemClassLoader的替代方法,以便可以为不在类路径中的类查询我的ClassLoader.

我试过了Thread.currentThread().setContextClassLoader,但似乎没有用.

它甚至可能吗?

java jar classloader

14
推荐指数
2
解决办法
1万
查看次数

glassfish域名如何相互分离?

GlassFish允许创建N个域.每个域都有自己的Java类(库等)和系统设置.

例如,我们有两个域 - domain1和domain2.

通过GF Web控制台(http:// localhost:4848)为domain1设置了一个系统属性 - com.temp.foo=test1.除了通过GF web控制台(http:// localhost:7575),还为domain2设置了一个系统属性com.temp.foo=test2.

现在,在domain1中

System.out.println(System.getProperty("org.temp.foo"))
//returns `test1`
Run Code Online (Sandbox Code Playgroud)

在domain2中

System.out.println(System.getProperty("org.temp.foo"))
//returns `test2`
Run Code Online (Sandbox Code Playgroud)

据我所知,GF及其所有域都在JVM的一个实例中运行.我不明白在一个JVM独立系统属性的实例中它是如何可能的.谁能解释一下?

注意:我理解这可能是一个很长的解释,这就是为什么我只能按照我可以在互联网上阅读它们的顺序询问主要原则和解决方案/库名称.

java glassfish java-ee

9
推荐指数
1
解决办法
606
查看次数

覆盖系统类加载器

在 Java 中,可以使用以下方法替换默认系统 ClassLoader:

java -Djava.system.class.loader=com.test.MyClassLoader xxx
Run Code Online (Sandbox Code Playgroud)

这样,自定义类加载器用于加载新类,同时将默认系统类加载器作为其父类。

可以使用非运行时方法在 Android 应用程序中完成相同的系统 ClassLoader 替换吗?(gradle/manifest 或其他一些编译标志)

我不想在运行时替换系统类加载器,而是在整个应用程序启动时为整个应用程序设置一个不同的系统类加载器,甚至在应用程序类加载之前。

最终目标是在<clinit>调用Application 类之前运行代码(这基本上允许我按照我认为合适的方式加载应用程序中的所有类)。

android system classloader

5
推荐指数
0
解决办法
473
查看次数