Очень полезная информация, но я не пытаюсь объявить новый пакет; Я пытаюсь получить доступ к закрытым пакетным классам в существующем. Мой путь к классу уже указывает на правильный каталог, но я попытаюсь явно установить его в оболочке. Тем не менее, я думаю, что принятый ответ правильный; только открытые классы доступны для JShell.
ал с JShell после выпуска Java 9 и попытался импортировать пакет, который сделал. Поскольку все приложение, для которого я его кодирую, будет содержаться в этом пакете, каждый класс, кроме одного (который я еще не кодировал), является частным для пакета. Мой путь к классам правильный, но я все еще не могу использовать ни один из типов, объявленных в пакете в JShell (он выдает ошибку «не удается найти символ»).Нужно ли делать их общедоступными, чтобы они были доступны, или есть ли какой-то способ проверить закрытые для пакета классы? Вот точный код, который я попробовал.
Мой текущий каталог
C:\Users\Sylvaenn\OneDrive\Documents\Programs\Java\src
Мой путь к классу
C:\Users\Sylvaenn\OneDrive\Documents\Programs\Java\cls
и каталог пакета (для байт-кода)
C:\Users\Sylvaenn\OneDrive\Documents\Programs\Java\cls\collatz
CollatzSequence
это пакетный класс, содержащийся вcollatz
.
PS C:\Users\Sylvaenn> cd OneDrive\Documents\Programs\Java\src
PS C:\Users\Sylvaenn\OneDrive\Documents\Programs\Java\src> jshell
| Welcome to JShell -- Version 9
| For an introduction type: /help intro
jshell> import collatz.*;
jshell> CollatzSequence seq = new CollatzSequence(BigInteger.ONE);
| Error:
| cannot find symbol
| symbol: class CollatzSequence
| CollatzSequence seq = new CollatzSequence(BigInteger.ONE);
| ^-------------^
| Error:
| cannot find symbol
| symbol: class CollatzSequence
| CollatzSequence seq = new CollatzSequence(BigInteger.ONE);
| ^-------------^
jshell> /imports
| import java.io.*
| import java.math.*
| import java.net.*
| import java.nio.file.*
| import java.util.*
| import java.util.concurrent.*
| import java.util.function.*
| import java.util.prefs.*
| import java.util.regex.*
| import java.util.stream.*
| import collatz.*
jshell>