A Java package is a collection of similar classes, interfaces, and sub-packages, categorized into built-in and user-defined packages. Java packages provide organization, access protection, and prevent naming collisions, while they can be accessed in three ways: importing, using class names, or fully qualified names. Compilation and execution of Java packages involve specific commands, such as using the 'javac' and 'java' commands for creating and running packages.