dynamic-class-loaders相关内容
简短的总结是:如何构建 APK 和单独的库(我的意思是某种形式的类集(理想情况下,还有资源),例如 JAR、AAR 或 DEX 文件),但不包括那些APK 中的库;相反,应用会在运行时加载它们? 详情 所以我的主要问题是如何构建这样的应用程序(例如 Gradle 配置).如何指定哪些类进入哪些 JAR 或 DEX 文件?我是否要为每个想要结束的 DEX 文件创建一个 Android S
..
在我的应用中,我需要在运行时编译类/脚本. 作为 Class : Class< ;?扩展LoginAdapter>clazz = groovyClassLoader.loadClass名称LoginAdapter la = clazz.newInstance ID,徽标 或作为 closure : 关闭动作= groovyShell.evaluate(脚本,名称)作为关闭
..
我有一个像这样的类结构: package com.mydomain.myproject;公共课外{内部公共类{//一些代码}} 现在,我可以使用以下方法获取内部类的 CtClass : ClassPool pool = ClassPool.getDefault();CtClass innerCt = pool.getCtClass("com.mydomain.myproject.Out
..
出于教育目的,我正在尝试实现自定义类加载器. 我在jar文件中有模块“天气",我想由JarClassLoader从App类加载. 此处的类加载器(它从指定的类加载所有类罐子): package com.example.classloading; import java.io.IOException; import java.io.InputStream; import java
..
我们有一个基于Java的(jersey + grizzly)REST Server,它公开了像 foo.com/{game}/规则 foo.com/{game}/players foo.com/{game}/比赛 可以有任意数量的游戏 每个游戏的规则,玩家,比赛都有不同的实现方式 出于历史原因,我们希望每个游戏实施都使用单独的jars 因此有REST Server 当有类似
..
我正在用Java构建一个可以接收Java源文件的服务器,它应该使用JavaCompiler动态地对其进行编译,然后加载该类.但是,问题在于,如果服务器接收到具有相同名称但内容不同的文件,它将仍然加载先前的类并提供相同的输出.我已经注意到一些答案,建议为要尝试加载的类创建一个超类并使用其他classLoader,但是如果将Java源文件动态发送到服务器,情况仍然如此吗? 这是我在FileSer
..
我正在尝试在运行时从JAR加载一个表示为byte []数组的类. 我知道要加载的类有两件事: 1.它实现"RequiredInterface" 2.我知道它的限定名称:"sample.TestJarLoadingClass" 我找到了解决方案在其中我必须扩展ClassLoader但它会抛出: Exception in thread "main" java.lang.Class
..
所以我有一些代码-我想编译字符串'temp',然后执行它,然后更改字符串,重新编译并执行.问题是当前它只是首先执行第一部分代码. 我希望: This is in another java file How about now? 我得到: This is in another java file This is in another java file 完整代码如下,任何帮
..
我针对在Ubuntu 12.04服务器上运行的gwan服务器随附的标准hello.java和hello.c进行了测试. G-WAN 4.3.1 64位(2013年3月1日17:36:39) 一旦我和 sudo ./gwan -d 我还注意到没有守护程序选项的情况下也会发生相同的行为. 然后浏览至192.168.0.2:8080/?hello.c 我得到了"Hello,ANS
..
问题陈述: 我只想在开发环境上使用库,而不要在发行版(应用程序商店发行版)上使用库. 而且我也不希望该库也内置在发行版apk中. 我的环境 所以,我有一个这样的环境设置: 发展- 调试 发布 商店- 调试 发布->进入商店 在gradle中,我添加了- debugCompile 'com.some.library' 加载该库以进行开发-调试和
..
我有一个关于 Beanshell 的问题,我找不到任何地方的答案.我只能以2种方式之一运行Beanshell脚本: 在调用Beanshell和Beanshell使用之前定义类路径的位置 JRE默认类加载器. 在启动Beanshell之前根本没有定义类路径的地方,然后我使用 addClassPath()和importCommands()动态构建类路径 在Beanshell的类加载器中.这
..
我正在运行时生成.java类文件,需要立即在代码中利用这些类. 因此,我使用Compiler API编译.java类以制作.class文件: JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); DiagnosticCollector diagnostics = new Diagnosti
..
我正在尝试使用自定义类加载器来加载应用程序所需的所有依赖项.我已在以下网站上实现了customerClassLoader: https://www.javacodegeeks.com/2013/03/java-handmade-classloader-isolation.html 但是,我不明白如何告诉我的应用程序在需要时使用自定义classLoader. 例如:可以说,我有一个发出h
..
有人知道如何将Java用于强大的代码移动性吗?你以前做过吗? 这就是我想要达到的目标. 假设我们有2个独立的Java应用程序,它们通过网络进行通信. App A和App B. App A具有实例化为对象的类x,并且一直在使用它. App B没有此类x的先验知识. 应用A需要将类x的实例迁移到应用B.应用B应该能够动态加载类x,并保留类x的 state 我在Google
..
嗨,我需要创建,编译和加载Java类运行时.我正在使用FTL创建Java源文件,并且如果没有动态依赖项,则能够编译源代码. 要详细说明一个实例,我有两个java源文件,一个接口及其实现类.我可以使用java编译器api来编译接口, String classpath=System.getProperty("java.class.path"); String testpat
..
我能够找到的所有文档都提到了'jre/lib/ext'文件夹,但是在我的JRE 13安装中不存在. 我猜在Java 8(可以在jre/lib/ext中看到jar)和Java 13之间的某个地方,它们移动了,但是我无法查明它的完成时间和完成方式. 有人可以根据扩展类当前所在的位置来详细说明新JRE的情况吗? 解决方案 Java 9扩展机制已不复存在,不仅移动了[:-| ,请参见
..
我知道Java会在首次访问中加载类(创建新实例,调用静态方法或静态字段),但是在这个简单的示例中,我尝试执行一个jar文件,该文件使用一些在运行时ClassPath中没有的类时间.我希望(由于在第一次访问时加载类)在发生异常之前以静态块和main方法打印我的消息.但我收到“线程“主"中的异常" java.lang.NoClassDefFoundError:com/example/DateAbstr
..
简短的摘要是:如何构建APK和独立的库(我指的是某种形式的类集(最好是资源),例如JAR,AAR或DEX文件),但不包括那些APK中的库;相反,应用程序会在运行时加载它们吗? 详细信息 所以我的主要问题是如何构建这样的应用程序(例如Gradle配置).如何指定将哪些类放入哪个JAR或DEX文件?是否要为每个最终要生成的DEX文件创建一个Android Studio模块? 一个密切
..
让我们说我有一个Java项目,在我的类路径中添加了2个不同的jar. Java类加载器在2个jar中发现了一些重复的类,然后只加载其中一个. classloader如何确定classpath中的两个类相同?只是按类Name或packageName.className进行比较,还是比较这些类的每个字节代码? 解决方案 它仅由完全限定的名称(程序包+类名)决定,并加载(通常-取决于类加载
..
我有一个棘手的问题。 我的java程序在循环中做这样的事情: 循环: 将带有已编译java类的外部文件读入byte []数组。 创建我自己的类加载器的新实例。 从readed文件到这个classloader实例的setbytes。 使用创建的类加载器从外部文件创建类的对象的新实例。 调用任何创建对象的方法。 问题出在哪里。 当我在调试模式下运行
..