当前位置: 首页 > 知识库问答 >
问题:

Java代理在打包到jar文件中时未运行

冯翔
2023-03-14
package test_app;

public class app {

public static void main(String args[]) {
    
    System.out.println("MAIN JAVA CLASS!!!!");
    
}

}
package java_agent;

import java.lang.instrument.*;

public class agent {

public static void premain(String agentArgs, Instrumentation inst) {
    
    System.out.println("INSIDE AGENT");
    
}

}
Main-Class: test_app.app
Class-Path: .
PreMain-Class: java_agent.agent
javac app.java
javac agent.java

jar -cvfm app.jar manifest.txt app.class
jar -cvfm agent.jar manifest.txt agent.class
java -javaagent:agent.jar -jar app.jar
Exception in thread "main" java.lang.ClassNotFoundException: agent_app.agent
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:606)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:168)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:431)
    at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:525)
 *** java.lang.instrument ASSERTION FAILED ***: "result" with message agent load/premain call failed at ./open/src/java.instrument/share/native/libinstrument/JPLISAgent.c line: 422
 FATAL ERROR in native method: processing of -javaagent failed, processJavaStart failed

请帮我把它修好,怎么做。我完全是在Eclipse上做的。

共有1个答案

归誉
2023-03-14

很明显,您应该将.class文件移动到指定的包(路径)中,这些包是test_app和java_agent。

在你做完这些之后,让罐子运行,它应该是OK的。

此外,为什么不使用Eclipse来制作jar呢?

 类似资料:
  • 问题内容: 我正在通过Java程序执行exe。该路径是用Java硬编码的。 我已经把我的exe包装在罐子里。 但是由于我在Java文件中硬编码了路径名而感到困惑,因此我无法将jar作为独立程序执行。 是否有任何包装此类jar的提示,即内部具有exe并能够作为独立程序运行? 问题答案: 这会将提取.exe到本地磁盘上的本地文件。当Java程序存在时,该文件将被删除。

  • 我已经尝试了很多方法,并遵循了几个在线说明,比如这个-Eclipse导出的Runnable JAR不显示图像,但到目前为止,没有成功。 我有一个非常简单的程序,读取一个文本文件(test.txt),并将其内容打印到标准输出。我正在使用Eclipse。这是我所做的- 我将文本文件放入名为“资源”的文件夹中 任何帮助都将不胜感激。 附录:这是代码。 }

  • 问题内容: 我已经使用Netbeans开发了Java桌面应用程序。在我的应用程序中,我使用了一些属性文件,并将其放置在Project文件夹下,以便可以使用类似的代码来访问它 但是,当我将应用程序部署并打包到.jar文件时,我找不到属性文件在哪里,并且我的应用程序无法从属性文件读取值。 我该如何解决该错误,我应该在哪里放置我的属性文件并将其加载? 问题答案: 将其放在下面,然后按如下所示使用它。 N

  • 我当前在打开JAR文件时遇到了问题。我使用的是NetBeans6.7。它编译成功,没有错误,我有一个JAR文件在我的DIST文件夹。发生的事情是:每当我单击文件时,命令提示符打开,一秒钟内,它关闭。就是这样。没有错误代码没有。我已经尝试添加新的环境变量(JAVA_HOME),并将其指向我的JDK文件夹。什么都没发生。请帮帮我。还有:我需要下载JRE才能打开JAR文件吗?在我读到的某个地方,JRE已

  • 我试图在命令行中使用依赖项运行我的java类。我使用IntelliJ IDEA13从我的项目中构建工件。我有一个名为“main.java”的主类,在构建之后,我得到了一个类似MyTest.jar的jar文件。java的全限定名类似于“test.main” 但是当我试图使用“java mytest.jar”运行它时,它抱怨找不到主类mytest.jar。 ----Main.class --META-

  • 我在Eclipse中创建了一个项目,该项目空间中的文件夹中有图像文件。 我一整天都在用它创建. jars,但现在我不知何故把它搞砸了。 我正在测试如果我从项目中删除了图像文件会发生什么,但它显然不起作用(正如我预期的那样)。但当我把文件复制回来并试图重新打包项目时,它仍然像我没有图像文件时一样。。我可以清楚地看到,图像没有被打包到罐子里,因为。jar文件只有200kb,而带有图像的jar文件只有3