假设jar在JVM中运行,是否可以卸载当前运行的Jar并将其从系统中删除。下载新版本并将其重命名为与上一个Jar相同的名称,然后初始化新Jar,从而在JVM中创建Jar的无缝更新。甚至可以指示JVM执行此操作吗?是否可以在运行时更新Jar? 最佳答案 DownloadanewversionandrenameitwiththesamenameofthelastJarandtheninitialisethenewJar,creatingaseamlessupdateoftheJarwithintheJVM...Isitevenpossi
已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭6年前。Improvethisquestion谁能给我一个好的资源或解释一下类加载器背后的概念?我在类加载器上找到了以下资源http://www.onjava.com/lpt/a/5586但仍然没有帮助。以下问题可能看起来很愚蠢,但试图回答它们总是让我感到困惑。为什么开发人员要编写自定义类加载器,为什么不调用Bootstrap类加载器来调用您的自定义类?自定义类加载器需要什么?为什么有这么多种类加载器
已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭6年前。Improvethisquestion谁能给我一个好的资源或解释一下类加载器背后的概念?我在类加载器上找到了以下资源http://www.onjava.com/lpt/a/5586但仍然没有帮助。以下问题可能看起来很愚蠢,但试图回答它们总是让我感到困惑。为什么开发人员要编写自定义类加载器,为什么不调用Bootstrap类加载器来调用您的自定义类?自定义类加载器需要什么?为什么有这么多种类加载器
最近我切换到Java11并开始调试我的应用程序并看到此消息:OpenJDK64-BitServerVMwarning:Sharingisonlysupportedforbootloaderclassesbecausebootstrapclasspathhasbeenappended仅找到thiscommit和ticket,但它并没有告诉我太多。我需要担心吗? 最佳答案 我在安装jdk-12.0.1_windows-x64_bin.zip后,在尝试将调试器与IntelliJIDEA一起使用时也遇到了这个问题。我收到错误消息(JavaH
最近我切换到Java11并开始调试我的应用程序并看到此消息:OpenJDK64-BitServerVMwarning:Sharingisonlysupportedforbootloaderclassesbecausebootstrapclasspathhasbeenappended仅找到thiscommit和ticket,但它并没有告诉我太多。我需要担心吗? 最佳答案 我在安装jdk-12.0.1_windows-x64_bin.zip后,在尝试将调试器与IntelliJIDEA一起使用时也遇到了这个问题。我收到错误消息(JavaH
我刚刚解决了另一个*I-though-I-was-using-this-version-of-a-library-but-appparently-my-app-server-has-already-loaded-an-older-这个库的版本-*问题(叹气)。有人知道验证(或监控)您的应用程序是否可以访问所有适当的jar文件或加载的类版本的好方法吗?提前致谢![附注开始使用OSGimodulearchitecture的一个很好的理由在我看来!]更新:This文章也有帮助!它通过将JBoss的类加载器写入日志文件来让我了解加载了哪些类。 最佳答案
我刚刚解决了另一个*I-though-I-was-using-this-version-of-a-library-but-appparently-my-app-server-has-already-loaded-an-older-这个库的版本-*问题(叹气)。有人知道验证(或监控)您的应用程序是否可以访问所有适当的jar文件或加载的类版本的好方法吗?提前致谢![附注开始使用OSGimodulearchitecture的一个很好的理由在我看来!]更新:This文章也有帮助!它通过将JBoss的类加载器写入日志文件来让我了解加载了哪些类。 最佳答案
我在一个项目中工作,我们使用的库在Java8流场景中不能保证线程安全(也不是)和单线程,它可以按预期工作。我们希望使用并行流来获得低垂的可扩展性成果。不幸的是,这会导致库失败-很可能是因为一个实例干扰了与另一个实例共享的变量-因此我们需要隔离。我正在考虑为每个实例(可能是线程本地)使用单独的类加载器,据我所知,这应该意味着我获得了所需的隔离,但我不熟悉为此目的故意构建类加载器。这是正确的方法吗?我该如何做才能获得适当的生产质量?编辑:我被要求提供有关触发问题的情况的更多信息,以便更好地理解它。问题仍然是关于一般情况,而不是修复库。我可以完全控制由库创建的对象(即https://gith
我在一个项目中工作,我们使用的库在Java8流场景中不能保证线程安全(也不是)和单线程,它可以按预期工作。我们希望使用并行流来获得低垂的可扩展性成果。不幸的是,这会导致库失败-很可能是因为一个实例干扰了与另一个实例共享的变量-因此我们需要隔离。我正在考虑为每个实例(可能是线程本地)使用单独的类加载器,据我所知,这应该意味着我获得了所需的隔离,但我不熟悉为此目的故意构建类加载器。这是正确的方法吗?我该如何做才能获得适当的生产质量?编辑:我被要求提供有关触发问题的情况的更多信息,以便更好地理解它。问题仍然是关于一般情况,而不是修复库。我可以完全控制由库创建的对象(即https://gith
我对Java还是比较陌生,所以请多多包涵。我的问题是我的Java应用程序依赖于两个库。我们称它们为库1和库2。这两个库都对库3具有相互依赖关系。但是:库1需要库3的版本1。库2需要库3的版本2。这正是JARhell的定义(或至少一个它的变体)。如链接中所述,我无法在同一个类加载器中加载第三个库的两个版本。因此,我一直试图弄清楚是否可以在应用程序中创建一个新的类加载器来解决这个问题。我一直在研究URLClassLoader,但我一直无法弄清楚。这是一个演示该问题的示例应用程序结构。应用程序的Main类(Main.java)尝试实例化Library1和Library2并运行在这些库中定义的