Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα, έχω το εξής πρόβλημα, έχω 2 προγράμματακια γραμμένα σε java, και έχω πρόβλημα στο να τρέξω το ένα από τα 2 από cmd. Το πρώτο:

public class HelloWorld
{
  public static void main(String[] args)
  {
    System.out.println("Hello, World!");
  }
}

το έχω αποθηκευμένο σαν HelloWorld.java σε ένα φάκελο, γίνεται κανονικα compile, και το τρέχω και τυπώνει Hello κανονικα ( > java HelloWorld)

 

Το δευτερο


package car;

import java.util.Scanner;


public class Car {
    
    public int hp;
    public int cc;
    public double width;
    public double height;
    public double speed;
    public String colour;
    public String name;
    
    
    
    public Car() {
        readData();
        printData(name); 
    }
    
    public void readData() {
        Scanner in = new Scanner(System.in);
        System.out.print("give the car hp: ");
        hp = in.nextInt();
        System.out.print("Give the car cc: ");
        cc = in.nextInt();
        System.out.print("Give the car colour: ");
        colour = in.next();
        System.out.print("Give speed");
        speed = in.nextDouble();
        System.out.print("give name: ");
        name = in.next();
        
    } // readData

    public void printData(String name) {
        System.out.println("name: " + name);
        System.out.println("car speed is: " + speed);
        System.out.println("car cc is : " + cc);
        System.out.println("hp is " + hp);
        System.out.println("speed colour: " + colour);
        
    } // printData
    
    
    public void accelerate() {
        speed = speed + 30;
    } // accelerate

    public static void main(String[] args) {
        Car honda =  new Car();
        Car bmw = new Car();
        
       honda.readData();
       honda.printData(honda.name);
        
        bmw.readData();
        bmw.printData(bmw.name);
    } // main
    
}

έστω πως είναι στο desktop, τρέχω κανονικά:

c:\Users\Myname\Desktop> javac Car.java

 

αλλα όταν δώσω

 

> java Car

 

μου επσιτρεφει: Error: Could not find or load ain class Car

 

οι enviromental variables οπυ έχω δηλώσει είναι:

 

JAVA_HOME

C:\Program Files\Java\jdk1.8.0_144

 

PATH

%JAVA_HOME%\bin

 

CLASSPATH

C:\Program Files\Java\jre1.8.0_144\lib\rt.jar

 

 

έχετε ιδέα τι μπορεί να φταίει;

Δημοσ.

Φτιάξε ένα folder στο Dekstop σου με όνομα car.

Κάνε move το Car.class εκει μέσα

Μετά απο το cmd ενώ είσαι στο Dekstop folder (c:\Users\Myname\Desktop) δώσε java car.Car

Είσαι έτοιμος.

 

Η διαφορά με το HelloWorld είναι ότι έχεις δηλώσει package name

Δημοσ.

Δυο προβλήματα βρήκα:
Δεν μπορείς να ζητάς δεδομένα στο constructor του Car και να τα ζητάς και πιο κάτω (χωρίς να τα δίνεις ξανά)!
Άλλαξα το input stream από την κονσόλα σε αλφαριμθμητικό.
Έβαλα και μερικά \n όπου έκρινα ότι χρειάζονταν!

 

 

μπορείς να βάλεις και αυτές τις γραμμές για να χρησιμοποιηθεί και το accelerate()

        honda.accelerate();
        honda.printData(honda.name+ " accelerate");

  • Like 1
Δημοσ.

 

Δυο προβλήματα βρήκα:

Δεν μπορείς να ζητάς δεδομένα στο constructor του Car και να τα ζητάς και πιο κάτω (χωρίς να τα δίνεις ξανά)!

Άλλαξα το input stream από την κονσόλα σε αλφαριμθμητικό.

Έβαλα και μερικά \n όπου έκρινα ότι χρειάζονταν!

 

 

μπορείς να βάλεις και αυτές τις γραμμές για να χρησιμοποιηθεί και το accelerate()

        honda.accelerate();

        honda.printData(honda.name+ " accelerate");

 

 

Ωραίος αλλά ο TS θέλει απλά να το τρέξει. 

Αν ήταν να το σουλουπώσουμε θα το σβήναμε ολόκληρο και θα το ξαναγράφαμε , αλλά ακόμη μαθαίνει το παλικάρι προφανώς οπότε έχει δρόμο για τις διορθώσεις.

  • Like 1
Δημοσ.

Όταν το τρέχει το παράδειγμα που δείχνω φτιάχνει μόνο του αυτά:

$javac car/Car.java
$java -Xmx128M -Xms16M car/Car

 

 

Άρα:

στο φάκελο car πρέπει να βάλει το Car.java (σε Linux πεζά με κεφαλαία διαφέρουν)

javac car/Car.java

 

και μετά αυτό (τα άλλα είναι για την μνήμη...δεν μας ενδιαφέρει εδώ)

java car/Car

  • Like 1
Δημοσ.

παιδια σας ευχαριστω. Οντως ο κωδικας ειναι πολυ basic, και δεν με απασχολει σε 1η φαση, απλα θελω να δω πως τρεχει απο cmd.

Στο θεμα μας, δεν μου δουλεψε μεχρι που εσβησα το

package Car;

 

και μετα όντως μου έτρεξε, αλλα μόνο όταν μπήκα στον φακελο car. δηλαδή ενώ δουλεψει το compile

> javac car\car.java

 

η εντολή java car.Car δεν

 

μολις μπηκα στον φακελο ολα καλα.

 

Τι ακριβως το χαλαει στο οταν οριζω package και σε αυτες τις περιπτωσεις πως μπορει να τρεξει ο κωδικας απο cmd/terminal;

 

edit: αν βοηθαει εχω φτιαξει ενα project μεσα απο netbeans και κλασσικα ο φακελος εχει μεσα υποφακελους build, src, test Κλπ και τα αρχεια java ειναι στο path:

Car\src\car\Car.java

Δημοσ.

Το java car.Car θα πρέπει να ήταν java car\Car και εκτέλεση από το φάκελο Car\src\ (σε αυτό που έγραψα στο προηγούμενο post είναι σε Linux terminal οι εντολές).

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...