-I flag JAVA command @ .bat CMAKE

时间:2014-01-20 09:44:18

标签: java windows batch-file cmake

我必须从jar和idl文件中提取并生成一些.h文件。

需要使用外部开发人员的.bat:

    @echo off
    java -jar C:\WorkspaceSwim\trunk\iB\build\BlueGen\target\bluegen.jar -o                 C:\WorkspaceSwim\trunk\Example\Distribution\build\GeneratedDDSFiles         C:\WorkspaceSwim\trunk\Example\Distribution\Flight.idl
    set NDDSHOME=C:\WorkspaceSwim\trunk\iB\build\ToolBox\NDDS 
    set RPCDDSHOME=C:\WorkspaceSwim\trunk\iB\build\ToolBox\RPCDDS 
    setlocal
    set dir=%~dp0
    set args=%1
    :getarg
    shift
    if "%~1"=="" goto continue
    set args=%args% %1
    goto getarg
    :continue
    set JREHOME=%JAVA_HOME%
    "%JREHOME%\bin\java" -DPATH="%PATH%" -DNDDSHOME="%NDDSHOME%" -DRPCDDSHOME="%RPCDDSHOME%" -Djava.ext.dirs="%RPCDDSHOME%\classes\" com.eprosima.rpcdds.idl.RPCDDSGEN %args% "-I%RPCDDSHOME% /idl"

我认为脚本有一些失败,但我看不到它。也许是报价问题?我尝试了这3个职位:

"%JREHOME%\bin\java" -DPATH="%PATH%" -DNDDSHOME="%NDDSHOME%" -DRPCDDSHOME="%RPCDDSHOME%" -Djava.ext.dirs="%RPCDDSHOME%\classes\" com.eprosima.rpcdds.idl.RPCDDSGEN %args% "-I%RPCDDSHOME%\idl"

错误:未找到或加载主要类\ idl

"%JREHOME%\bin\java" -DPATH="%PATH%" -DNDDSHOME="%NDDSHOME%" -DRPCDDSHOME="%RPCDDSHOME%" -Djava.ext.dirs="%RPCDDSHOME%\classes" com.eprosima.rpcdds.idl.RPCDDSGEN %args% "-I%RPCDDSHOME%\idl"

错误:未找到或加载主要类com.eprosima.rpcdds.idl.RPCDDSGEN

"%JREHOME%\bin\java" -DPATH="%PATH%" -DNDDSHOME="%NDDSHOME%" -DRPCDDSHOME="%RPCDDSHOME%" -Djava.ext.dirs="%RPCDDSHOME%\classes\  com.eprosima.rpcdds.idl.RPCDDSGEN %args%" -I "%RPCDDSHOME%\idl"

无法识别的选项:-I 错误:无法创建Java虚拟机。

Previusly我使用这个.cmake生成将运行此.bat

的代码
add_custom_command(
    OUTPUT ${DDSGeneratedFiles}
    COMMAND java -jar ${iB_BlueGen} -o ${GeneratedDDSDirName} ${LocatedFile} 
    COMMAND "set NDDSHOME=${iMASBlue_NDDS_DIR} &" "set RPCDDSHOME=${iB_RPCDDS_DIR} &"    ${RPCDDSGenerator} -replace -d ${GeneratedDDSDirName} -I${CMAKE_CURRENT_SOURCE_DIR} ${LocatedFile}
    DEPENDS ${IncludeDependencies} 
    MAIN_DEPENDENCY ${LocatedFile}
    COMMENT "Calling RPCDDS Generator '${RPCDDSGenerator}' on '${IdlFile}'"
    )

Thnx的答案。

1 个答案:

答案 0 :(得分:0)

要调试批处理文件,请更改行

 @echo off

在批处理文件中

 @echo on

再次运行