Вопрос или проблема
У меня проблема с ошибкой компиляции пакета Java.
Я получаю эту ошибку, когда компилирую декларацию пакета в Java через командную строку
javac -d .\java_shorts.java
.\java_shorts.java:3: ошибка: ожидался класс, интерфейс, перечисление или запись
package shorts;
^
1 ошибка
// файл java_shorts.java
import java.io.Printwriter;
package shorts;
public static class java_shorts
{
public static void command_line_output(String string_input)
{
System.out.print(string_input);
}
public static int random_number_generator_range_exclude_data_base()
{
}
public static void hello_world()
{
command_line_output("hello_world \n\n");
}
}
////////////////////
///// основной файл вызова
import account_methods.account_core;
import shorts.java_shorts;
public class account_main
{
public static void main (String args[])
{
java_shorts short_java = new java_shorts();
short_java.hello_world();
}
}
Я надеялся импортировать класс из внешнего файла.
Определение пакета должно быть перед определениями импорта.
package shorts;
import java.io.Printwriter;
Ответ или решение
Конечно, я помогу вам решить проблему, с которой вы сталкиваетесь при компиляции Java пакета. Ошибка, которую вы видите, связана с тем, что определение пакета должно находиться перед любыми импортами в вашем файле.
Исправления
- Переместите определение пакета (
package shorts;
) перед строкой импорта. Это означает, что код вашего файлаjava_shorts.java
должен выглядеть так:
package shorts;
import java.io.PrintWriter; // исправьте Printwriter на PrintWriter, чтобы соответствовать именам классов в Java
public class java_shorts { // уберите static перед классом
public static void command_line_output(String string_input) {
System.out.print(string_input);
}
public static int random_number_generator_range_exclude_data_base() {
// Реализация вашего метода
return 0; // Временно возвращаем 0
}
public static void hello_world() {
command_line_output("hello_world \n\n");
}
}
- Убедитесь, что вы используете правильную команду для компиляции. Для компиляции с определением пакета вам нужно указать путь к папке, а не к самому .java файлу:
javac -d . java_shorts.java
Эта команда создаст структуру папок, соответствующую вашему пакету, и скомпилирует класс java_shorts
в папку shorts
.
- Далее, убедитесь, что вы правильно импортируете класс в вашем основном файле
account_main.java
:
import account_methods.account_core;
import shorts.java_shorts;
public class account_main {
public static void main(String[] args) {
java_shorts short_java = new java_shorts();
short_java.hello_world();
}
}
- Компилируйте
account_main.java
аналогичным образом:
javac -d . account_main.java
Итог
После выполнения указанных шагов ваши файлы должны компилироваться без ошибок. Не забудьте, что структура ваших файлов должна соответствовать пакетам. То есть, если вы используете пакет shorts
, то класс java_shorts
должен находиться в папке shorts
. Если у вас есть дополнительные вопросы или случаи, когда вы сталкиваетесь с ошибками, не стесняйтесь спрашивать!