私はWindowsで動作していて、JavaプロジェクトでSyntaxとgVIMを使用しようとしていますが、Javaクラスパスをコンパイラに送信するプラグインを取得できません。ClasspathがJavacに合格していません
ここに私の_vimrc
設定です:
let g:syntastic_java_checkers=['java']
let g:syntastic_java_javac_config_file_enabled = 1
これは私が、以下の情報(読みやすくするために簡略絶対パス)を記入している私の作業ディレクトリに.syntastic_javac_config
というファイルからクラスパスを読み取るためにSyntasticを設定するには:
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
ツールを実行する場合、私は(<working file>
絶対パスをある)次のコマンドラインで呼び出されるjavac
を参照してください。
javac -Xlint -d %AppData%\Local\Temp\1\vim-syntastic-javac <working file>
不在が目立つが、クラスパスを設定するための-cp
パラメータです。その結果、すべて私が書いた他のクラスへのインポートは、コード内のそれらのクラスへのすべての参照と同様に、失敗を生成します。役に立たない。
私は誰かがここで何が間違っているかもしれないかについてのアイデアを提供したいと考えています。私はSyntheticのjavac.vim
ファイルを見てきましたが、問題の明白な原因として何も出ていません。もし誰かがVimscriptを踏みにじる方法を知っていれば、私はそれも勝利と考えています。
Vimで ':h String'を読んでください。 – lcd047
'g:syntastic_java_javac_classpath'が書かれているように動作しないことを示唆しているなら、それは良い点ですが、ここでは問題はありません。私はバックスラッシュをエスケープしようとしました。フォワードスラッシュ( 'javac'は大丈夫そうです)にリバースし、代わりにリテラル文字列を使用しましたが、どれも問題を解決しませんでした。 OPを編集して問題を修正しました。 – djmoch
それから ':h syntastic-config-debug'を読んで、デバッグトレースを[issue tracker](https://github.com/scrooloose/syntastic/issues)に投稿してください。 – lcd047