使用Dart运行jar文件:IO Process类?

时间:2013-09-21 15:20:33

标签: dart

为什么这段代码没有返回任何结果?

Process.run('java', ['-mx300m -classpath stanford-postagger/stanford-postagger.jar edu.stanford.nlp.tagger.maxent.MaxentTagger -model stanford-postagger/models/wsj-0-18-bidirectional-nodistsim.tagger -textFile stanford-postagger/sample-input.txt']).then((ProcessResult results) {
    print(results.stdout);
});

执行代码时我没有错误。

1 个答案:

答案 0 :(得分:2)

这似乎是一个常见的Java错误。将最小和最大堆大小设置为相同的值是个好主意。在任何情况下,都不要让最小堆大小超过最大堆大小。

注意:Process.run的第二个参数是一个数组。为每个命令行参数使用一个元素,而不是仅包含一个长字符串的数组。

Process.run('java', [
  '-Xms300m', // Set minimum and maximum heap size to the same value
  '-Xmx300m', // Set minimum and maximum heap size to the same value
  '-classpath',
  'stanford-postagger/stanford-postagger.jar',
  'edu.stanford.nlp.tagger.maxent.MaxentTagger',
  '-model',
  'stanford-postagger/models/wsj-0-18-bidirectional-nodistsim.tagger',
  '-textFile',
  'stanford-postagger/sample-input.txt'
]).then((ProcessResult results) {
  print(results.stdout);
  print(results.stderr);
})
.catchError((e) {
  print(e);
});