如何将.class文件更改为文本文件

时间:2018-05-02 17:30:24

标签: java runtime.exec

我试图创建一个执行java文件并在文本字段中输出的java程序。我已经使用Runtime类来编译.java文件。那么如何从新创建的类文件中获取输出。

Runtime.getRuntime().exec("javac Y://CodeSave.java");
Runtime.getRuntime().exec("java Y://CodeSave.class>output.txt");

2 个答案:

答案 0 :(得分:0)

在一般情况下:f <- function(x) { sapply(x, function(y) sum(abs(y - x) >= 30)) } df$diff <- unlist( df %>% group_by(ids) %>% do(diff = f(.$date)) %>% .$diff ) 返回一个Process实例,该实例具有I / O流的访问器(getOutputStream等)。您可以读/写这些流。

但是:在您的代码中,您使用了exec。这是 shell 功能。如果你想这样做,你需要生成一个shell,而不是直接生成>output.txt工具,并让shell执行该命令行。 (搜索产生/执行shell应该会找到很多例子。)

答案 1 :(得分:-1)

出于各种原因,使用Runtime.exec绝对不是正确的方法。例如,java和javac都依赖于你无法通过这种方式传递的环境变量。

首先,我会问自己是否真的需要这样做。编译和执行动态创建的代码是一个巨大的安全风险。

但如果你确定需要这样做,那就是我要做的事。

  • 将您的来源移至专用临时文件夹
  • 使用ToolProvider api编译您的来源
  • 使用动态一次性ClassLoader(ByteBuddy可以帮助您)SecurityManager从您的应用程序中加载和执行您的代码