2013-08-05 3 views
-8

Я пытаюсь запустить проект java из командной строки. Но когда я печатаюКак скомпилировать основной класс из командной строки, который включает другие классы

javac BatchImport.java 

затем я получаю эры. Вот снимок экрана из этих ошибок

Compile Errors

Здесь бревно

D:\LS360BatchImportIntegration\src\main\java\com\softech\ls360\integration>dir 

08/05/2013 05:47 AM <DIR>   . 
08/05/2013 05:47 AM <DIR>   .. 
08/01/2013 05:03 AM   11,707 AbstractBatchImport.java 
08/05/2013 04:06 AM    1,591 BatchImport.java 
08/05/2013 05:47 AM <DIR>   email 
08/05/2013 05:47 AM <DIR>   file 
08/05/2013 05:47 AM <DIR>   ftp 
08/05/2013 05:47 AM <DIR>   sftp 
08/05/2013 05:47 AM <DIR>   util 
08/05/2013 05:47 AM <DIR>   vintners 
08/05/2013 05:47 AM <DIR>   webservice 
      2 File(s)   13,298 bytes 
      9 Dir(s) 122,904,571,904 bytes free 

D:\LS360BatchImportIntegration\src\main\java\com\softech\ls360\integration>javac BatchImport.java 
BatchImport.java:12: package com.softech.ls360.integration.util does not exist 
import com.softech.ls360.integration.util.IntegrationUtil; 
            ^
BatchImport.java:13: package com.softech.ls360.integration.util does not exist 
import com.softech.ls360.integration.util.VU360IntegrationProperties; 
            ^
BatchImport.java:14: package com.softech.ls360.integration.vintners does not exist 
import com.softech.ls360.integration.vintners.Vintners; 
             ^
BatchImport.java:46: cannot find symbol 
symbol : class Vintners 
location: class com.softech.ls360.integration.BatchImport 
      Vintners vintners = new Vintners(customerName, randomUUIDString); 
      ^
BatchImport.java:46: cannot find symbol 
symbol : class Vintners 
location: class com.softech.ls360.integration.BatchImport 
      Vintners vintners = new Vintners(customerName, randomUUIDString); 
            ^
5 errors 

D:\LS360BatchImportIntegration\src\main\java\com\softech\ls360\integration> 

Мой главный класс включают в себя другие классы, а также. И другие классы включают в себя и другие классы. Как я могу скомпилировать проект, в котором есть несколько классов?

Благодаря

+2

'javac' предназначен для компиляции, а не для запуска. –

+0

Да при компиляции i ma возникают ошибки. Как я могу избежать этого? – Basit

+0

Итак, давайте расскажем вам, как вообще избежать ошибок в коде? –

ответ

3

javac предполагает текущий каталог является расположение пакета по умолчанию. Вы запускаете его из глубины структуры исходного каталога.

cd вернуться в каталог src/main/java и использовать полный путь к файлу, который вы хотите скомпилировать.

0

Журнал ошибок:

BatchImport.java:12: package com.softech.ls360.integration.util does not exist 
import com.softech.ls360.integration.util.IntegrationUtil; 

Указывает, что класс com.softech.ls360.integration.util.IntegrationUtil; не может быть найден на пути построения. Поэтому вам нужно добавить банки в путь сборки, который содержит вышеприведенный класс.

Я рекомендую использовать и IDE для запуска класса со всеми классами, включенными в его путь сборки. Кроме того, если вы хотите сделать это через командную строку, this SO ответ вам поможет. Но я настаиваю, чтобы вы использовали IDE.

+0

'IntegrationUtil' не является банкой. Это еще один класс в моем проекте. Мой класс 'BatchImport' находится в пакете' com.softech.ls360.integration', а IntegrationUtis находится в пакете 'com.softech.ls360.integration.util'. У меня есть и другие пакеты. Вы можете видеть в журнале, который я предоставил как 'file, ftp, ..'. Я думаю, что сначала нужно скомпилировать те классы, которые входят в основной класс. Я прав ? – Basit

0

Предполагая LS360BatchImportIntegration Ваш base_directory вашего проекта. cdbase_directory. Оттуда с помощью следующей команды:

javac -d classes src\main\java\com\softech\ls360\integration\BatchImport.java 

Это будет компилировать ваши классы и поместить их в base_directory \ Классы папок. Если ваш проект имеет внешние зависимости, используйте параметр -cp в команде javac

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