【问题标题】:How to compile and run Typescript from Java?如何从 Java 编译和运行 Typescript?
【发布时间】:2019-04-11 18:58:24
【问题描述】:

我正在基于 Java 的应用程序中以编程方式编写 Typescript。 这会生成一个 script.ts,它在正常的 Node js 环境(安装了 Typescript)中由以下人员编译和运行:

tsc script.ts

我现在的问题是: 我可以在与 Java 应用程序相同的服务器上预安装 node js en Typescript,然后如何从 Java 运行此脚本(模仿 tsc script.ts)?并阅读它的控制台日志?

编辑 1:我正在尝试运行 script.ts,如下所示,但遇到错误

p = Runtime.getRuntime().exec("tsc C:\\Users\\SK\\Documents\\Men\\HAI-main\\Executed\\script.ts");

错误:

Caused by: java.io.IOException: Cannot run program "tsc": CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
        at java.lang.Runtime.exec(Runtime.java:620)

【问题讨论】:

  • 愚蠢的问题,但为什么要在以编程方式生成的脚本中使用打字稿?如果没有开发人员,是否需要类型安全?
  • 因为供应商有打字稿sdk,为了加快速度,我必须这样做
  • 你想从 java 中运行 typescript 为什么?

标签: javascript java node.js typescript


【解决方案1】:

为了在与您的 Java 应用程序相同的服务器上编译 TS,您只需要确保已安装 Node、NPM 和 Typescript。您还需要确保tsc 在您的PATH 中,或者在下面的代码中使用tsc 可执行文件的完整路径。

然后你可以生成一个tsc 进程。像这样的:

Runtime.getRuntime().exec("tsc /path/to/script.ts");

【讨论】:

  • 好的,如何在运行脚本时生成控制台日志记录?
  • exec 的结果是一个Process 对象。我猜你可以使用它的getOutputStream 方法并将输出流通过管道传输到标准输出或文件。见:docs.oracle.com/javase/7/docs/api/java/lang/Process.html
  • 我想用 p = Runtime.getRuntime().exec("tsc C:\\Users\\SK\\Documents\\Men\\HAI-main\\Executed\\ 编译 tsc脚本.ts");但收到此错误;知道为什么吗?一切都安装在该文件夹节点、npm、typescript... 原因:java.io.IOException:无法运行程序“tsc”:CreateProcess 错误=2,系统找不到在 java.lang.ProcessBuilder.start 指定的文件(ProcessBuilder.java:1048) at java.lang.Runtime.exec(Runtime.java:620) 我现在收到这个错误,我已经在文件夹中安装了所有东西
  • 听起来tsc 不在您的路径中。尝试将绝对路径传递给exec。像这样的东西:exec("/path/to/tsc /path/to/script.ts")
  • 我做到了,现在我收到了这个错误:%1 is not a valid Win32 application1 看到 tsc 不是 exe 文件....我发现旧主题说它有 2 个可执行文件,不确定是否仍然存在实际link
猜你喜欢
  • 2012-10-24
  • 1970-01-01
  • 2018-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-19
  • 2013-09-25
  • 1970-01-01
相关资源
最近更新 更多