java - 使用JavaCPP编译代码出现异常?

标签 java processbuilder javacpp

我正在尝试在 http://code.google.com/p/javacpp/ 上运行自己的 LegacyLibrary 示例

当我尝试使用仅在站点上提到的以下命令编译代码时(基本上使用 javacpp.jar 编译代码),我收到以下异常

D:\Java Workspace\POC\JavaCPP\bin>java -jar javacpp.jar LegacyLibrary
Generating source file: D:\Java Workspace\POC\JavaCPP\bin\jniLegacyLibrary.cpp
Building library file: D:\Java Workspace\POC\JavaCPP\bin\windows-x86\jniLegacyLibrary.dll
cl "/IC:\Program Files (x86)\Java\jdk1.6.0_03\include" "/IC:\Program Files (x86)\Java\jdk1.6.0_03\include\win32" "D:\Java Workspace\POC\JavaCPP\bin\jniLegacyLibrary.cpp" /W3 /Oi
 /O2 /EHsc /Gy /GL /MD /LD /link "/OUT:D:\Java Workspace\POC\JavaCPP\bin\windows-x86\jniLegacyLibrary.dll"
Exception in thread "main" java.io.IOException: Cannot run program "cl": CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
        at com.googlecode.javacpp.Builder.build(Builder.java:189)
        at com.googlecode.javacpp.Builder.generateAndBuild(Builder.java:234)
        at com.googlecode.javacpp.Builder.main(Builder.java:479)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
        at java.lang.ProcessImpl.create(Native Method)
        at java.lang.ProcessImpl.<init>(ProcessImpl.java:81)
        at java.lang.ProcessImpl.start(ProcessImpl.java:30)
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
        ... 3 more

有什么补救措施吗?

最佳答案

错误消息非常清楚:它没有找到 cl 可执行文件,这是 Visual Studio 编译器的名称。

您应该从 Visual Studio 命令提示符(通常在开始菜单中有一个条目)运行该命令,以加载正确的环境变量。

关于java - 使用JavaCPP编译代码出现异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9720181/

相关文章:

java - 使用 java 在 eclipse 中创建的 Jersey Tomcat Web 服务器的 404 错误

java - 如何模拟 Throwable 对象?

java - 用 Java 将用户输入发送到控制台

带有小程序的 Java ProcessBuilder

sbt - 类路径中缺少依赖项

java - 将 org.bytedeco.javacpp.Mat 转换为 Java int/float 数组

java - 与 Eclipse Collections 中的软值进行映射

java - Jackson 为 Type X 的所有字段添加自定义序列化程序

java - 带参数的批处理文件执行 - [Java - OpenSSL]

c++ - javacpp 中的 "a namespace name is not allowed"错误