如何在Android App中复制Java控制台行为

时间:2013-10-25 17:19:07

标签: android console

我有一个使用

的Java SE应用程序

input = new Scanner(System.in);

获取输入参数

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

打印结果

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

我已经看到有开发人员已经在一些类似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
         }

}

1 个答案:

答案 0 :(得分:0)

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

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上编译。您将获得输出并将其呈现给用户。