私はJava 9リリースの後にJShellで遊んでいましたが、私が作ったパッケージをインポートしようとしました。私がそれをコーディングしているアプリケーション全体がそのパッケージに含まれているので、すべてのクラス(ただしまだコード化していないクラス)はパッケージプライベートです。私のクラスパスは正しいですが、私はまだJShellのパッケージで宣言されている型のどれも使用できません( "シンボルを見つけることができません"というエラー)。 アクセスできるように公開する必要がありますか、またはパッケージプライベートクラスをテストできる方法がありますか?ここで私が試した正確なコードです。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
はパッケージ - ですに含まれるプライベートクラス。
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>
はあなたがシナリオの再現性のあるコードを共有してもらえましたか?それは疑問を明確にするのに役立ちます。 – nullpointer
私は編集にそれを含めました。 –