классам Я бегу Windows 7 с Java версии 1.6.0_31-b05 на моем компьютере, и сети моего computerlab в Linux (Fedora, возможно, версия 13) работает под управлением Java версии 1.6.0_35 -b10.Linux Javac команда erroring на подстановочные
У меня есть каталог C:\myproject
(и др.) С src
, lib
и bin
в подкаталогах.
- Папка
src
содержит весь исходный код в древовидной структуре, которая соответствует пакетам java. - В каталоге
lib
содержатся файлы JAR.
Я воссоздал дерево в Linux под ../myproject
(и др.).
При попытке скомпилировать в DOS, из каталога
..\myproject\src
, с помощью этой команды ниже, она отлично работает:javac -cp ".;../bin;../lib/*" -d ../bin org/unlv/schillerlab/motif_diversity/step02/*.java
При попытке компиляции в Linux, из каталога
../myproject/src
, Я получаю сообщение неправильный путь к классам:../lib/*
:javac -cp ".:../bin:../lib/*" -d ../bin org/unlv/schillerlab/motif_diversity/step02/*.java
Доступ к компьютерной сети возможен как из DOS, так и из Linux. В Linux я впервые создал каталоги ../myproject/src
, ../myproject/lib
и ../myproject/bin
. Затем, в DOS, я скопировал необходимые файлы с моего C
дисков на ../myproject/src01
и ../myproject/lib01
. Затем в Linux я использовал команду cp -av
для заполнения src
и lib
от src01
и lib01
, соответственно. Поэтому я не думаю, что есть проблема с разрешениями Linux.
В Linux, с сайта ../myproject/src
, выпуск ls ../lib
показывает, что каталог (sibling) lib
содержит файлы JAR. Я также попробовал команду Linux javac
с абсолютным путем к каталогу lib
; нет радости.
Аналогично, я попытался удалить цитату ("
) пометки из статьи -cp
; нет радости.
Возможно, проблема в том, что я запускаю старую версию Fedora? Если нет, есть ли у кого-то гипотеза относительно проблемы?
echo ../ lib/* действительно перечисляет все файлы jar. Кроме того, учитывая все, что я прочитал +, что команда работает в Dos, я думаю, что в команде javac Linux указание работы каталога файла jar (т. Е. ../Lib/*) как части параметра classpath должно работать. – user2661923
В Linux (по крайней мере, в Bash) расширение подстановки не происходит внутри "". Echo "../lib/*" не будет делать то же самое, что и echo ../lib/*. Тем не менее, похоже, что любая форма должна работать, согласно документации. Вы запускаете javac из своего каталога src /? – Sbodd
Итак, попытка в Linux с метками кавычек _should_ (и делает) терпит неудачу. Чтобы быть осторожным, я просто повторил, без кавычек: javac -cp.: ../ bin: ../ lib/* -d ../bin org/unlv/schillerlab/motif_diversity/step02/*. java Неверный путь к классу: ../lib/* сохраняется. Да, я запускаю javac из моего каталога src. – user2661923