Syntastic 没有将类路径传递给 Javac
Syntastic Not Passing Classpath to Javac
我在 Windows 工作,试图将 gVIM 与 Syntastic 一起用于 Java 项目,但我似乎无法让插件发送 Java 类路径给编译器。
这是我的 _vimrc
配置:
let g:syntastic_java_checkers=['java']
let g:syntastic_java_javac_config_file_enabled = 1
这会将 Syntastic 配置为从我的工作目录中名为 .syntastic_javac_config
的文件中读取类路径,我已在该文件中填写了以下信息(为了便于阅读而删节了绝对路径):
let g:syntastic_java_javac_classpath = '<project root>\build\classes\main;<project root>\build\resources\main;<project root>\build\classes\test;<project root>\build resources\test'
上面的配置 看起来 是正确的,因为我可以 运行 命令 :SyntasticJavacEditClasspath
并且它显示了我在配置中配置的类路径文件。但是,出于某种原因,类路径永远不会传递给 javac
。如果我 运行 Microsoft 的 SysinternalsSuite 中的 procmon.exe
工具,我会看到 javac
使用以下命令行调用(其中 <working file>
是绝对路径):
javac -Xlint -d %AppData%\Local\Temp\vim-syntastic-javac <working file>
值得注意的是,缺少用于配置类路径的 -cp
参数。结果是 所有 我对我编写的其他 类 的导入都会产生失败,以及我代码中对那些 类 的所有引用。有点没用。
我希望有人可以提供有关此处可能存在问题的想法。我查看了 Syntastic 中的 javac.vim
文件,但没有任何问题是明显的问题根源。如果有人知道单步执行 Vimscript 的方法,我也会认为这是一个胜利。
我能够逐步使用 Vim 的 :debug
工具,发现 javac
语法检查器没有像我预期的那样拆分类路径,寻找 \n
作为路径分隔符,而不是 OS 的本地路径分隔符([=20= 中的 ;
,*nix 中的 :
)。以这种方式在 .syntastic_javac_config
中指定类路径解决了问题。
我会做更多的研究以确定问题是由于我的误解还是 Syntastic 中的错误,如有必要我会提交错误报告。
我在 Windows 工作,试图将 gVIM 与 Syntastic 一起用于 Java 项目,但我似乎无法让插件发送 Java 类路径给编译器。
这是我的 _vimrc
配置:
let g:syntastic_java_checkers=['java']
let g:syntastic_java_javac_config_file_enabled = 1
这会将 Syntastic 配置为从我的工作目录中名为 .syntastic_javac_config
的文件中读取类路径,我已在该文件中填写了以下信息(为了便于阅读而删节了绝对路径):
let g:syntastic_java_javac_classpath = '<project root>\build\classes\main;<project root>\build\resources\main;<project root>\build\classes\test;<project root>\build resources\test'
上面的配置 看起来 是正确的,因为我可以 运行 命令 :SyntasticJavacEditClasspath
并且它显示了我在配置中配置的类路径文件。但是,出于某种原因,类路径永远不会传递给 javac
。如果我 运行 Microsoft 的 SysinternalsSuite 中的 procmon.exe
工具,我会看到 javac
使用以下命令行调用(其中 <working file>
是绝对路径):
javac -Xlint -d %AppData%\Local\Temp\vim-syntastic-javac <working file>
值得注意的是,缺少用于配置类路径的 -cp
参数。结果是 所有 我对我编写的其他 类 的导入都会产生失败,以及我代码中对那些 类 的所有引用。有点没用。
我希望有人可以提供有关此处可能存在问题的想法。我查看了 Syntastic 中的 javac.vim
文件,但没有任何问题是明显的问题根源。如果有人知道单步执行 Vimscript 的方法,我也会认为这是一个胜利。
我能够逐步使用 Vim 的 :debug
工具,发现 javac
语法检查器没有像我预期的那样拆分类路径,寻找 \n
作为路径分隔符,而不是 OS 的本地路径分隔符([=20= 中的 ;
,*nix 中的 :
)。以这种方式在 .syntastic_javac_config
中指定类路径解决了问题。
我会做更多的研究以确定问题是由于我的误解还是 Syntastic 中的错误,如有必要我会提交错误报告。