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

从另一个类调用Spring Main方法错误

谭畅
2023-03-14
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        try {
            SpringApplication.run(Application.class, args);
            System.out.println("No error");
        } catch (Exception e) {
            System.out.println("Error " + e);

        }

    }
}
public class FetchNewsPlugin implements Plugin {

    @Override
    public void initializePlugin(PluginManager manager, File pluginDirectory) {
        Runnable r = new Runnable() {
             public void run() {
                 String[] args = {};
                Application.main(args);
             }
         };

         new Thread(r).start();
         System.out.println("Plugin Intitialized");

    }

    @Override
    public void destroyPlugin() {
    }

}

日志输出:

线程“Thread-13”java.lang.noClassDeffounder中的异常错误:org/springframework/boot/springapplication at hello.application.main(application.java:11)at org.clinton.openfire.plugin.fetchnewsplugin$1.run(fetchnewsplugin.java:20)at java.lang.thread.run(thread.java:745)由:java.lang.classnotfoundexception:org.springframework.boot.springapplication at java.net.urlclassloader.findclass(urlclassloader java.lang.ClassLoader.LoadClass(ClassLoader.java:424),java.lang.ClassLoader.LoadClass(ClassLoader.java:357)...还有3个

引发异常的位置:

 /**
     * Finds and loads the class with the specified name from the URL search
     * path. Any URLs referring to JAR files are loaded and opened as needed
     * until the class is found.
     *
     * @param name the name of the class
     * @return the resulting class
     * @exception ClassNotFoundException if the class could not be found,
     *            or if the loader is closed.
     * @exception NullPointerException if {@code name} is {@code null}.
     */
    protected Class findClass(final String name)
        throws ClassNotFoundException
    {
        final Class result;
        try {
            result = AccessController.doPrivileged(
                new PrivilegedExceptionAction>() {
                    public Class run() throws ClassNotFoundException {
                        String path = name.replace('.', '/').concat(".class");
                        Resource res = ucp.getResource(path, false);
                        if (res != null) {
                            try {
                                return defineClass(name, res);
                            } catch (IOException e) {
                                throw new ClassNotFoundException(name, e);
                            }
                        } else {
                            return null;
                        }
                    }
                }, acc);
        } catch (java.security.PrivilegedActionException pae) {
            throw (ClassNotFoundException) pae.getException();
        }
        if (result == null) {
            throw new ClassNotFoundException(name);
        }
        return result;
    }

共有1个答案

皇甫树
2023-03-14

看起来您正在使用URLClassLoader来加载所需的类。但是,URLClassLoader应该包含它所依赖的所有项或jar,而不仅仅是jar本身。

换句话说,您最好提取您的jar,并将所有必要的项添加到您的URLClassLoader中。

这样它就应该起作用了。如果有问题请告诉我。

 类似资料:
  • 问题内容: 在Python中,有没有一种方法可以从另一个类中调用一个类方法?我正在尝试在Python中旋转自己的MVC框架,但无法弄清楚如何从另一个类的一个类调用方法。 这是我想发生的事情: 我正在从PHP慢慢进入Python,因此我正在寻找与PHP等效的Python 。 问题答案: 更新:刚刚在您的帖子中看到了对它的引用。那不一样。用于获取函数对象,然后使用您的参数调用它 现在是一个实际的函数对

  • 问题内容: 我正在研究一个问题,但由于刚开始学习Java而感到非常困惑。我可以理解的任何帮助都会很棒。我必须编写一个具有两个类的程序。主类将从文件中读取内容,并使用第二类来查找文件中相同单词被重复的次数,然后将它们添加到包含单词和单词重复次数的数组中。我可以阅读文件部分。我只是似乎不知道如何从第二个类调用方法以将单词添加到数组并增加计数器。到目前为止,这是我的代码,如果您运行它,您将看到多少错误会

  • 问题内容: 我知道这个问题是重复的,但是我在Internet上找不到答案。 我想从另一个类调用一个方法。 我有Class1和Class2。 在第2类中,我具有该方法: 我想从Class1调用该方法。 感谢您的任何答复。 - - 编辑 - - -— LogCat– 问题答案: 您应该使用以下代码: 如果您不想创建一个新的实例来调用该方法,则可以将方法标为十进制,然后只需调用即可。

  • Java,我们可以从另一个类调用main()方法吗?例如,ClassA应该在命令行上运行,因为它定义了main(String[]args)方法。 我想把这个叫做ClassA,在ClassB里面。是否初始化类的新对象,如 或者是否有一种方法可以在ClassB中传递ClassA的命令行选项。 谢啦

  • 我正在开发一个程序,在这个程序中,我必须调用一个提示用户从另一个类输入数据的方法。这个程序应该打印客户的姓名、年龄、地址和性别。然而,我在调用一个输入每个客户信息的方法时遇到了问题。 此外,我还必须创建一种方法,将客户的年龄按升序排序。因此,该程序根据年龄从(最年轻的客户)到(最老的客户)的顺序打印出所有信息。我不知道如何创建一种只对客户年龄进行排序而不对姓名、地址和性别进行排序的方法。如果您有任

  • 嗨我正在努力解决我面临的问题 我想做的是调用test1类的zahl方法 这是我尝试过的,但它什么也没有返回,即使它应该显示我的错误。