wake-up-neo.net

javac-Fehler: "Paket x existiert nicht" bei "Import x"

Ich versuche, meine Java-Datei 'check4PrimeTest.Java' mit dem Befehl Eingabeaufforderung mit folgendem Befehl zu kompilieren:

javac -classpath.: junit.jar check4PrimeTest.Java

Ich erhalte folgende Fehlermeldung:

fehler: Das Paket junit.framework existiert nicht. import junit.framework. *;

Ich bin mir nicht sicher, warum ich diese Fehlermeldung bekomme, da ich in meinem Programm import junit.framework. * Habe.

unten ist mein Code:

package check4prime;
// check4PrimeTest.Java

//Imports 
import junit.framework.*;

public class check4PrimeTest extends TestCase {

    //Initialize a class to work with. 
    private check4Prime check4prime = new check4Prime();

    //constructor 
    public check4PrimeTest (String name) { 
        super(name);
    }

    //Main entry point 
    public static void main(String[] args) {
        System.out.println("Starting test...");
        junit.textui.TestRunner.run(suite());
        System.out.println("Test finished...");
    } // end main() 

    //Test case 1 
    public void testCheckPrime_true() {
        assertTrue(check4prime.primeCheck(3));
    }

    //Test cases 2,3 
    public void testCheckPrime_false() {
        assertFalse(check4prime.primeCheck(0));
        assertFalse(check4prime.primeCheck(1000));
    }

    //Test case 7 
    public void testCheck4Prime_checkArgs_char_input() { 
        try {
            String [] args= new String[1];
            args[0]="r";
            check4prime.checkArgs(args);
            fail("Should raise an Exception.");
        } catch (Exception success) { 
            //successful test
        }
    } //end testCheck4Prime_checkArgs_char_input() 

    //Test case 5 
    public void testCheck4Prime_checkArgs_above_upper_bound() {
        try { 
            String [] args= new String[1];
            args[0]="10001";
            check4prime.checkArgs(args);
            fail("Should raise an Exception.");
        } catch (Exception success) { 
            //successful test
        }
    } // end testCheck4Prime_checkArgs_upper_bound() 

    //Test case 4 
    public void testCheck4Prime_checkArgs_neg_input() {
        try { 
            String [] args= new String[1];
            args[0]="-1";
            check4prime.checkArgs(args);
            fail("Should raise an Exception.");
        } catch (Exception success) { 
            //successful test
        }
    } // end testCheck4Prime_checkArgs_neg_input()

    //Test case 6
    public void testCheck4Prime_checkArgs_2_inputs() {
        try { 
            String [] args= new String[2];
            args[0]="5";
            args[1]="99";
            check4prime.checkArgs(args);
            fail("Should raise an Exception.");
         } catch (Exception success) {
            //successful test 
         } 
    } // end testCheck4Prime_checkArgs_2_inputs 

    //Test case 8 
    public void testCheck4Prime_checkArgs_0_inputs() {
        try { 
            String [] args= new String[0];
            check4prime.checkArgs(args);
            fail("Should raise an Exception.");
        } catch (Exception success) { 
            //successful test
        } 
    } // end testCheck4Prime_checkArgs_0_inputs 

    //JUnit required method. 
    public static Test suite() { 
        TestSuite suite = new TestSuite(check4PrimeTest.class);
        return suite;
    } //end suite() 

} //end check4PrimeTest
15
Jon Snow

Diese Fehlermeldung wird angezeigt, weil Sie versuchen, ein Paket zu importieren, ohne Ihrem System mitzuteilen, wo sich das Paket befindet. Hier erfahren Sie, wie Sie Ihrem System mitteilen, wo sich das Paket befindet:

Ihr Javac-Ziel gibt außer der Quelle und .__ nichts an. Zielverzeichnis - fügt keine Klassenpfadeinträge hinzu; Du brauchst um einen Eintrag für die entsprechende JUnit-JAR-Datei hinzuzufügen. Siehe die Javac-Aufgabe Dokumentation für weitere Details. Möglicherweise möchten Sie den Pfad zu .__ angeben. JUnit als Klassenpfadattribut, verschachteltes Element oder Referenz auf eine an anderer Stelle deklarierter Pfad.

Quelle: Problem beim Ausführen von JUnit-Tests mit Ant in Eclipse. Anfängerfrage

Prompt> javac -classpath .;$JUNIT_HOME\junit4.x.x.jar test.Java 

EDIT: JUNIT INSTALLATION (von hier ):

Windows

Gehen Sie folgendermaßen vor, um JUnit unter Windows zu installieren:

1. Unzip the junit.Zip distribution file to a directory referred to as %JUNIT_HOME%.

2. Add JUnit to the classpath (type the following into a command line Shell): `set CLASSPATH=%CLASSPATH%;%JUNIT_HOME%\junit.jar`

Unix (Bash)

Gehen Sie folgendermaßen vor, um JUnit unter Unix zu installieren:

1. Unzip the junit.Zip distribution file to a directory referred to as $JUNIT_HOME.

2. Add JUnit to the classpath (type the following into terminal):

`export CLASSPATH=$CLASSPATH:$JUNIT_HOME/junit.jar`
11
weberc2

Ihre Import-Anweisung teilt dem Compiler mit, dass Sie ein Artefakt benötigen. In diesem Fall teilen Sie dem Compiler mit, dass Sie junit verwenden müssen. Sie zu deklarieren und der JVM zur Verfügung zu stellen, ist jedoch etwas anderes. Sie müssen sicherstellen, dass sich Ihre Junit-JAR-Datei in Ihrem Klassenpfad befindet.

EDIT: Übrigens, wenn Sie eine IDE verwenden, sparen Sie Zeit. Ich weiß, dass Eclipse einschüchternd sein kann, aber ich würde empfehlen, es zu benutzen. Es sei denn, Sie sind eher eine Art Befehlszeile, aber selbst wenn Sie etwas Ernstes tun, sollten Sie eine IMO IDE verwenden.

1
cobolstinks

Diese Fehlermeldung wird angezeigt, weil Sie ein Paket importieren oder eine JAR-Datei verwenden, die nicht gefunden werden kann.

Sie sollten Ihre Umgebungsvariablen auf Klassenpfadvariable prüfen. __ Fügen Sie der Klassenpfadvariable .. den Pfad Ihrer JAR-Datei oder Ihres Pakets hinzu. Fügen Sie der Klassenpfaddatei Ihrer Java-Datei auch den Klassenpfad der Java-Datei hinzu, wenn der Fehler angezeigt wird Klasse kann nicht geladen werden, Hauptdatei nicht gefunden "

Hoffe das hilft.!!

1
swayamraina

Wenn Sie Java 9 oder höher mit JUnit 5 oder höher verwenden, ist es möglich, dass das JUnit-Paket in einem Modul definiert ist, und Sie müssen möglicherweise mit --module-path auf das Verzeichnis verweisen, das das Modul/die modulare JAR enthält.

0
nikc

In meinem Fall Unter Windows habe ich den Doppelpunkt ersetzt: durch Semikolon; und es hat funktioniert !

javac -cp.: ./ abc.jar: ./ def.jar Practice.Java Practice.Java:2: Fehler: Paket com.coding.javapractice existiert nicht

Nach dem Ersetzen: mit;

javac -cp.; ./ abc.jar; ./ def.jar Practice.Java

Erfolgreich kompiliert.

0
KSRKSR