java-ошибка не может найти имена классов символов, только принимаются & hellip; (не потому, что отсутствует .java в команде компиляции) [duplicate]

A NullReferenceException бросается, когда мы пытаемся получить доступ к свойствам нулевого объекта или когда значение строки становится пустым, и мы пытаемся получить доступ к строковым методам.

Например:

  1. При использовании метода string пустой строки:
    string str = string.Empty;
    str.ToLower(); // throw null reference exception
    
  2. Когда свойство нулевого объекта доступно:
    Public Class Person {
        public string Name { get; set; }
    }
    Person objPerson;
    objPerson.Name  /// throw Null refernce Exception 
    
10
задан John Topley 18 August 2010 в 14:52
поделиться

6 ответов

Это должно сделать это (может потребоваться дополнительные элементы classpath с помощью переключателя командной строки -cp):

javac Support/*.java Me/*.java Wrapers/*.java

Но если ваш процесс сборки становится более сложным (и он будет!), вы должны посмотрите на использование Apache Ant для автоматизации сборки.

7
ответ дан Michael Borgwardt 27 August 2018 в 02:56
поделиться

Во многих случаях Ant является излишним. Просто используйте BAT-файл, если вы находитесь в Windows или сценарии оболочки (sh-файл), если вы находитесь в Linux. Вы можете создать текстовый файл, который включает в себя все ваши команды javac и просто запустить этот файл, когда вы хотите его построить.

Например, я использую следующий файл bat для создания одного из моих приложений:

@echo off
echo Building Shazaam...

del classes\com\aepryus\shazaam\*.* /q
del classes\com\aepryus\shazaam\engine\*.* /q
del classes\com\aepryus\shazaam\domain\*.* /q
del classes\com\aepryus\shazaam\persist\*.* /q
del classes\com\aepryus\shazaam\view\*.* /q
del classes\com\aepryus\shazaam\task\*.* /q
del classes\com\aepryus\shazaam\action\*.* /q
del classes\com\aepryus\shazaam\controller\*.* /q

javac src\com\aepryus\shazaam\*.java        -classpath \lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepLoom.jar; -d classes
javac src\com\aepryus\shazaam\engine\*.java -classpath \lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepLoom.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\domain\*.java -classpath \lib\AepUtil.jar;\lib\AepLoom.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\persist\*.java    -classpath \lib\AepUtil.jar;\lib\AepLoom.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\view\*.java   -classpath \lib\Servlet.jar;\lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\task\*.java   -classpath \lib\AepUtil.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\action\*.java -classpath \lib\Servlet.jar;\lib\AepUtil.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes
javac src\com\aepryus\shazaam\controller\*.java -classpath \lib\Servlet.jar;\lib\AepUtil.jar;\lib\AepXML.jar;\lib\AepRPC.jar;\lib\AepLoom.jar;\lib\AepHTML.jar;\lib\Sprout.jar;classes; -d classes

cd classes
jar cf ..\war\WEB-INF\lib\Shazaam.jar .
cd..

echo Complete
0
ответ дан aepryus 27 August 2018 в 02:56
поделиться
javac -d compiled $(find src -name *.java)
6
ответ дан Ken Bloom 27 August 2018 в 02:56
поделиться

Если вам действительно нужно просто использовать javac и стандартные команды UNIX, вы могли бы это сделать:

find src -name \*.java -print0 | xargs -0 javac -d classes
2
ответ дан Moritz 27 August 2018 в 02:56
поделиться

Для таких задач вам следует использовать такие инструменты построения, как Maven или Ant .

На начальных этапах, когда проект не очень сложный, вы может использовать следующую строку для компиляции с соответствующим классом классов (как предложено @Michael):

javac Support/*.java Me/*.java Wrapers/*.java

9
ответ дан pavanlimo 27 August 2018 в 02:56
поделиться

Реальный ответ: javac -d (места, где должны быть построены и размещены классы) -sourcepath (источник пакета в корневом каталоге) -cp (путь к классам зависимостей, которые могут снова быть папкой классов, в которой классы строятся и хранится) полное имя java-файла.

Ex javac -d classes -sourcepath src -cp classes src \ com \ test \ FirstSample.java

FirstSample.java содержит основной метод. Структура Pacjage, упомянутая ниже.

Перед компиляцией HomeApp --src ------ com \ test \ FirstSample.java (Первый пример с использованием FirstPojo.java) ------ com \ test \ FirstPojo.java --classes

После компиляции HomeApp --src ------ com \ test \ FirstSample.java (FirstSample.java с использованием FirstPojo.java) ------ com \ test \ FirstPojo.java --classes ------ com \ test \ FirstSample.class (FirstSample.class с использованием FirstPojo.class) ------ com \ test \ FirstPojo.class

0
ответ дан pratyush 27 August 2018 в 02:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: