从JSP页面运行java应用程序

从JSP页面运行java应用程序,java,class,jsp,execute,Java,Class,Jsp,Execute,本页上的问题询问如何从php页面运行java程序: 我想在JSP页面上做完全相同的事情。我不想导入类和调用函数或任何类似复杂的东西。我只想运行如下命令: java测试 然后通过保存在JSP页面中的变量中的Test获取打印到System.out的内容 我该怎么做 非常感谢 您可以通过Runtime.exec()执行此操作。: 由于已经有一个JVM在运行,您应该能够通过使用JAR实例化一个类加载器并反射地找到主方法并调用它来实现这一点 这是一些可能有用的样板文件: // add the c

本页上的问题询问如何从php页面运行java程序:

我想在JSP页面上做完全相同的事情。我不想导入类和调用函数或任何类似复杂的东西。我只想运行如下命令: java测试 然后通过保存在JSP页面中的变量中的Test获取打印到System.out的内容

我该怎么做


非常感谢

您可以通过
Runtime.exec()执行此操作。


由于已经有一个JVM在运行,您应该能够通过使用JAR实例化一个类加载器并反射地找到主方法并调用它来实现这一点

这是一些可能有用的样板文件:

    // add the classes dir and each file in lib to a List of URLs.
    List urls = new ArrayList();
    urls.add(new File(CLASSES).toURL());
    for (File f : new File(LIB).listFiles()) {
        urls.add(f.toURL());
    }

    // feed your URLs to a URLClassLoader
    ClassLoader classloader =
            new URLClassLoader(
                    urls.toArray(new URL[0]),
                    ClassLoader.getSystemClassLoader().getParent());

    // relative to that classloader, find the main class and main method
    Class mainClass = classloader.loadClass("Test");
    Method main = mainClass.getMethod("main",
            new Class[]{args.getClass()});

    // well-behaved Java packages work relative to the
    // context classloader.  Others don't (like commons-logging)
    Thread.currentThread().setContextClassLoader(classloader);

    // Invoke with arguments
    String[] nextArgs = new String[]{ "hello", "world" }
    main.invoke(null, new Object[] { nextArgs });

为什么我被否决了?因为stack overflow上的人都很自命不凡,认为一切都是一个糟糕的问题。我把你的问题投回0,我很想自己看看答案。哈哈,谢谢@Decave的支持
    // add the classes dir and each file in lib to a List of URLs.
    List urls = new ArrayList();
    urls.add(new File(CLASSES).toURL());
    for (File f : new File(LIB).listFiles()) {
        urls.add(f.toURL());
    }

    // feed your URLs to a URLClassLoader
    ClassLoader classloader =
            new URLClassLoader(
                    urls.toArray(new URL[0]),
                    ClassLoader.getSystemClassLoader().getParent());

    // relative to that classloader, find the main class and main method
    Class mainClass = classloader.loadClass("Test");
    Method main = mainClass.getMethod("main",
            new Class[]{args.getClass()});

    // well-behaved Java packages work relative to the
    // context classloader.  Others don't (like commons-logging)
    Thread.currentThread().setContextClassLoader(classloader);

    // Invoke with arguments
    String[] nextArgs = new String[]{ "hello", "world" }
    main.invoke(null, new Object[] { nextArgs });