运行 Java 控制台输入作为语句
Run Java Console Input as Statement
我正在 Java 中编写一个命令行矩阵操作工具,想知道是否可以通过控制台输入 运行 Java 语句。
我正在考虑使用 java.util.Scanner 对象,因为这是我在其余应用程序中使用的对象,但我愿意接受任何解决方案。
这是我的工具应用程序的副本 class,所以你可以明白我的意思:
package projects.matrix.main;
import static java.lang.System.*;
import java.util.Scanner;
import projects.matrix.util.MatrixTool;
/**
* MATRIX :: Application class for the matrix toolset.
* @author toner
* @version May 28 2015
* @since 1.8
**/
public class MarixApp {
public static void main (String [] args) {
out.println("****************************** START*****************"
+ "*************\n");
runCommandLine();
out.println("****************************** END *****************"
+ "*************\n");
}
/**
* MATRIX.MAIN :: runCommandLine runs a loop command line
* @param none
* @return none
**/
public static void runCommandLine () {
// method vars
Scanner scanner = new Scanner(in);
MatrixTool matrixtool = new MatrixTool();
int[][] matrix1 = new int[0][0];
int[][] matrix2 = new int[0][0];
int[][] resultmatrix = new int[0][0];
String command = "";
int executerret = 0;
// welcome prints
out.println("[!] welcome to toner's matrix tool command-line");
out.println("[!] enter 'HELP' to view available commands\n");
// commmand-line loop
do {
out.print(" [?] >> ");
command = scanner.nextLine();
executerret = executecmd(command);
} while (executerret != -1);
}
/**
* MATRIX.MAIN :: executecmd executes the command passed by runCommandLine
* @param cmd : String
* @return returncode : int
**/
public static int executecmd (String cmd) {
// method vars
Scanner scanner = new Scanner(in);
MatrixTool matrixtool = new MatrixTool();
int returncode = 0;
// command executer
switch (cmd) {
case "HELP" :
case "help" :
out.println("\n"
+ " [%] ADD DIVIDE HELP "
+ "MULTIPLY PRINT"
+ " [%] RUNJAVA SUBSTRACT SETMTRX "
+ "SETMTRX1 SETMTRX2"
+ " [%] TRANSPOSE RUNOPS RESET "
+ "EXIT\n");
break;
// rest of commands go here
}
}
}
问候。
您是否考虑过使用 Groovy?它是一种基于 JVM 的动态语言,这意味着您可以动态执行代码——以字符串形式出现的代码。从语法上讲,它非常接近 Java。示例代码可能如下所示:
new GroovyShell().evaluate("println 'hello'")
如果通过 运行ning console input as java statements,你的意思是从控制台获取准确的输入并 运行 它在你的应用程序中,你需要编译和 运行 他们。您可以使用 Compiler API
我正在 Java 中编写一个命令行矩阵操作工具,想知道是否可以通过控制台输入 运行 Java 语句。
我正在考虑使用 java.util.Scanner 对象,因为这是我在其余应用程序中使用的对象,但我愿意接受任何解决方案。
这是我的工具应用程序的副本 class,所以你可以明白我的意思:
package projects.matrix.main;
import static java.lang.System.*;
import java.util.Scanner;
import projects.matrix.util.MatrixTool;
/**
* MATRIX :: Application class for the matrix toolset.
* @author toner
* @version May 28 2015
* @since 1.8
**/
public class MarixApp {
public static void main (String [] args) {
out.println("****************************** START*****************"
+ "*************\n");
runCommandLine();
out.println("****************************** END *****************"
+ "*************\n");
}
/**
* MATRIX.MAIN :: runCommandLine runs a loop command line
* @param none
* @return none
**/
public static void runCommandLine () {
// method vars
Scanner scanner = new Scanner(in);
MatrixTool matrixtool = new MatrixTool();
int[][] matrix1 = new int[0][0];
int[][] matrix2 = new int[0][0];
int[][] resultmatrix = new int[0][0];
String command = "";
int executerret = 0;
// welcome prints
out.println("[!] welcome to toner's matrix tool command-line");
out.println("[!] enter 'HELP' to view available commands\n");
// commmand-line loop
do {
out.print(" [?] >> ");
command = scanner.nextLine();
executerret = executecmd(command);
} while (executerret != -1);
}
/**
* MATRIX.MAIN :: executecmd executes the command passed by runCommandLine
* @param cmd : String
* @return returncode : int
**/
public static int executecmd (String cmd) {
// method vars
Scanner scanner = new Scanner(in);
MatrixTool matrixtool = new MatrixTool();
int returncode = 0;
// command executer
switch (cmd) {
case "HELP" :
case "help" :
out.println("\n"
+ " [%] ADD DIVIDE HELP "
+ "MULTIPLY PRINT"
+ " [%] RUNJAVA SUBSTRACT SETMTRX "
+ "SETMTRX1 SETMTRX2"
+ " [%] TRANSPOSE RUNOPS RESET "
+ "EXIT\n");
break;
// rest of commands go here
}
}
}
问候。
您是否考虑过使用 Groovy?它是一种基于 JVM 的动态语言,这意味着您可以动态执行代码——以字符串形式出现的代码。从语法上讲,它非常接近 Java。示例代码可能如下所示:
new GroovyShell().evaluate("println 'hello'")
如果通过 运行ning console input as java statements,你的意思是从控制台获取准确的输入并 运行 它在你的应用程序中,你需要编译和 运行 他们。您可以使用 Compiler API