2016-04-08 4 views
1

Я работаю в Windows, пытаясь использовать gVIM с Syntastic для Java-проекта, и я не могу заставить плагин отправлять Java-путь к компилятору.Syntastic Не пропускает Classpath к Javac

Вот моя _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. Если я бегу procmon.exe инструмент в SysinternalsSuite Microsoft, я вижу javac вызывается с помощью следующей командной строки (где <working file> абсолютный путь):

javac -Xlint -d %AppData%\Local\Temp\1\vim-syntastic-javac <working file> 

Примечательно отсутствующий параметр -cp настроить путь к классам. Результатом является то, что все моего импорта в другие классы. Я написал генерации сбоев, а также каждую ссылку на эти классы в моем коде. Вид бесполезен.

Я надеюсь, что кто-то может предложить представление о том, что может быть неправильно здесь. Я просмотрел файл javac.vim в Syntastic, но ничто не является очевидным источником проблемы. Если кто-то знает, как пройти через Vimscript, я бы тоже подумал, что это тоже победа.

+0

Пожалуйста, прочтите ': h String' в Vim. – lcd047

+0

Если вы предлагаете 'g: syntastic_java_javac_classpath' работать не так, как написано, это хороший момент, но это не проблема. Я пробовал ускользнуть от обратных косых черт, перевернув их на передние косые черты (что «javac' выглядит нормально) и вместо этого использует Literal String, ни одна из которых не разрешила проблему. Я отредактировал OP, чтобы исправить проблему. – djmoch

+0

Затем, пожалуйста, прочитайте ': h syntastic-config-debug' и отправьте трассировку отладки на [отслеживание ошибок] (https://github.com/scrooloose/syntastic/issues). – lcd047

ответ

1

я смог пошагово с помощью :debug объекта Vim, и обнаружил, что javac проверка синтаксиса не разделив путь к классам, как я ожидал, ищу \n как путь разделитель, а не разделитель путей, произрастающий в ОС (; в Windows, : на * nix). Указание пути к классам в .syntastic_javac_config таким образом решило проблему.

Я сделаю немного больше исследований, чтобы определить, вызвана ли проблема из-за недопонимания на моем конце или ошибкой в ​​Syntastic, и при необходимости отправлю сообщение об ошибке.

 Смежные вопросы

  • Нет связанных вопросов^_^