3

我有一个 Java SE 应用程序,它使用

input = new Scanner(System.in);

获取输入参数

并使用System.out.println("..");

打印结果

由于原始 Java 项目中使用的所有 Java API 在 Android 中也可用,因此我尝试导入所有类而没有任何错误,但现在我不知道如何在 Android 中复制经典 Java 控制台的行为。

我已经看到有开发人员在一些类似 IDE 的应用程序中实现了这一点,但我不知道如何实现。

你可以帮帮我吗?

示例:假设您想在 Android 中移植这个虚拟 Java SE 应用程序,以维护原始代码的类似控制台的方法

    public static void main(String[] args) {
         System.out.println("Please enter your choice");
         System.out.println("A, B");

         Scanner myScanner = new Scanner(System.in);
         String choice = myScanner .nextLine();
         if (choice.charAt(0) == 'A') {
                ...do something
         }
         else{
                ...do something
         }

}
4

1 回答 1

0

您可以使用 执行系统命令exec()是如何做到的:

Runtime r = Runtime.getRuntime();
Process p = r.exec("uname -a"); // here goes your input
p.waitFor();
BufferedReader b = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";    
while ((line = b.readLine()) != null) {
    System.out.println(line);
}

更新:

好的,据我了解,您想编译和运行用户编写的代码。我可以看到 3 个选项:

  1. 我认为最难的。获取一些 Java 编译器的源代码并将其包含在您的项目中。因此,用户输入文本。你编译它,运行并给出输出。

  2. 使用已经构建的编译器。这需要root。安装javac在您的设备上。然后,在您的应用程序中,您可以使用上面的exec()代码调用它。

  3. 最简单的一个。使用互联网,例如Ideone.com。在您的应用程序中,您发送代码以在 Ideone 上编译。您取回输出并将其呈现给用户。

于 2013-10-25T17:41:57.797 回答