在Java中执行Java代码

14 浏览
0 Comments

在Java中执行Java代码

可能是重复的问题:将字符串转换为Java代码

我有一个包含如下内容的字符串:

"for(int i=0 ; i<5 ; i++){System.out.println(\"*\");}"

我能在Java中执行这个字符串中的代码吗?

0
0 Comments

自Java 6以来,您可以使用SDK中的标准API将定义为字符串或文件的Java编译单元进行编译和运行(编译单元基本上是指包括在.java文件中的所有内容-包,导入,类/接口/枚举),可以参考这个例子。但是,您不能像问题中的代码片段一样运行任意的Java代码。

如果可能的话,最好是嵌入一个允许您从Java程序中运行代码片段的不同脚本语言,例如JavaScript、Groovy、MVEL、BeanShell等等。

0
0 Comments

问题出现的原因:使用Java编写的代码无法在Java中执行。

解决方法:通过使用Java编译器API来实现在Java中执行Java代码。

在机器上安装Java SDK后,可以将Java代码转换为完整的源文件,并将其以编程方式传递给Java编译器。但是,这种方法只适用于安装了Java SDK的机器,而在安装了Java客户端发行版的机器上不可用。可以查看com.sun.tools.javac包,其中包含Java编译器API。

0
0 Comments

在Java中执行Java代码的问题可能出现的原因是Java的编译和执行过程相对复杂,需要使用Java编译器和Java虚拟机来完成。而解决方法可以是使用Groovy来运行Java代码。

Groovy是一种动态语言,可以无缝地集成到Java中。通过使用Groovy,我们可以直接在Java中执行Java代码,而无需编译和执行Java代码的复杂过程。

要在Java中执行Java代码,我们可以按照以下步骤操作:

1. 首先,我们需要将Groovy添加到Java项目的依赖中。我们可以通过在项目的构建文件(例如pom.xml)中添加Groovy依赖来实现。以下是一个示例pom.xml文件的片段:


    
        org.codehaus.groovy
        groovy-all
        2.4.15
    

2. 接下来,我们需要创建一个GroovyShell对象,并使用该对象来执行Java代码。以下是一个示例代码:

import groovy.lang.GroovyShell;
public class ExecuteJavaCodeInJava {
    public static void main(String[] args) {
        String javaCode = "public class HelloWorld {\n" +
                "    public static void main(String[] args) {\n" +
                "        System.out.println(\"Hello, World!\");\n" +
                "    }\n" +
                "}";
        GroovyShell groovyShell = new GroovyShell();
        groovyShell.evaluate(javaCode);
    }
}

在上面的示例中,我们创建了一个GroovyShell对象,并使用evaluate方法执行了一个简单的Java代码。通过调用evaluate方法,我们可以在Java中执行任何有效的Java代码。

3. 最后,我们只需运行上述Java代码,即可在Java中执行Java代码并获得结果。

通过使用Groovy,在Java中执行Java代码变得更加简单和方便。我们只需添加Groovy依赖并使用GroovyShell对象来执行Java代码,即可避免复杂的编译和执行过程。这为我们提供了更好的灵活性和效率。

0