2012-03-15 89 views
2

我想对http://code.google.com/p/javacpp/用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 

这是什么补救措施?

+0

Java通常不喜欢文件名中的空格。程序[]文件[] x86 – darijan 2012-03-15 12:59:48

回答

2

错误消息很明显:它没有找到cl可执行文件,它是Visual Studio编译器的名称。

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

+0

感谢它的工作...... :) – dhroove 2012-03-15 16:54:14