Nombre del paquete prohibido: java

Traté de obtener los datos de mi nombre de base de datos como jaane con el nombre de usuario Hola y Contraseña hola. Error:

java.lang.SecurityException: Prohibited package name: java at java.lang.ClassLoader.preDefineClass(ClassLoader.java:480) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$000(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) Could not find the main class: java.Main. Program will exit. Exception in thread "main" Java Result: 1 BUILD SUCCESSFUL (total time: 0 seconds) 

mi código es

 package java; import java.awt.Container; import java.sql.DriverManager; import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; /** * * @author ritesh */ public class Main extends JFrame{ public Main() throws SQLException {super("Database of Students"); try { Class.forName("org.apache.derby.jdbc.ClientDriver"); } catch (ClassNotFoundException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } Connection connection = DriverManager.getConnection( "jdbc:derby:/localhost:1527","hello","Hello" ); Statement statement = connection.createStatement(); // query database ResultSet resultSet = statement.executeQuery( "SELECT * FROM COLLEAGUES" ); StringBuffer results = new StringBuffer(); ResultSetMetaData metaData = resultSet.getMetaData(); int numberOfColumns = metaData.getColumnCount(); for ( int i = 1; i <= numberOfColumns; i++ ) { results.append( metaData.getColumnName( i ) + "\t" ); } results.append( "\n" ); while ( resultSet.next() ) { for ( int i = 1; i <= numberOfColumns; i++ ) { results.append( resultSet.getObject( i ) + "\t" ); } } // close statement and connection statement.close(); connection.close(); // set up GUI and display window JTextArea textArea = new JTextArea( "Hello"); Container container = getContentPane(); container.add( new JScrollPane( textArea ) ); setSize( 300, 100 ); // set window size setVisible( true ); // display window } /** * @param args the command line arguments */ public static void main(String[] args) { try { Main window = new Main(); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // TODO code application logic here } catch (SQLException ex) { Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex); } } } 

Cambia el nombre de tu paquete. java como nombre de paquete está prohibido.

Editar : Mueva su archivo Main.java en un directorio (fuente) que no comience con java o javax y utilice los nombres de la estructura del directorio para cambiar el nombre de su paquete en el código.

 java.lang.SecurityException: Prohibited package name: java 

No puedes usar java como el nombre de tu paquete. Reemplázalo por otra cosa.

Debe especificar el nombre de la base de datos, y hay dos barras antes de localhost. Supongo que hola es su nombre de usuario y Hola la contraseña …

 Connection connection = DriverManager.getConnection( "jdbc:derby://localhost:1527/DatabaseName","hello","Hello" ); 

… eso es después de que cambiaste el nombre de tu paquete a algo que no sea java.

Mira por qué `java.lang.SecurityException: ¿Nombre de paquete prohibido: java` es obligatorio?

El código de usuario nunca puede incluir clases en uno de los paquetes Java estándar. De esta forma, el código de usuario no puede acceder a ningún paquete-clases / métodos / campos privados en la implementación de Java. Algunos de esos objetos privados de paquete permiten el acceso a las partes internas de JVM. (Estoy pensando en SharedSecrets en particular).

Nunca mantenga su clase en un paquete raíz como “java” o nunca cree un paquete que comience como java. … puede usar cualquier otro identificador como nombre de su paquete.