/programm
|-src/
`-|-Main.java
Wenn ich das mache, z.B. mit einem simplen "HalloNorbert"-Programm, dass nur eine Zeile ausgibt, und ich starte RUN, auf welche Art auch immer, spielt der immer das vorletzte Programm ab, obwohl "HalloNorbert" geladen ist und im Editor-Fenster angezeigt wird.IntelliJ IDEA kann schon sehr gut die Struktur eines Projektes automatisch erkennen. Dazu braucht es nicht vorher ein IntelliJ IDEA Projekt gewesen zu sein mit einer .iml Datei oder einem .idea/ Ordner. Versuche einfach mal, den Ordner, der die Quellcode-Dateien deines "Programms" beinhaltet, mit IntelliJ IDEA einfach zu öffnen (also File -> Open).
Also, wenn die Struktur deines "fertigen Programms" so aussieht:
dann öffne mal den Ordner "programm" in IntelliJ IDEA.Code:/programm |-src/ `-|-Main.java
IntelliJ IDEA kann allerdings keine Programme aus "Büchern" laden. Du müsstest das Programm schon von dem Buch "abschreiben" und auf deinem lokalen Dateisystem speichern.
Guten Morgen Konrad!Kannst du uns ggf. sagen, welches Buch du gerade bearbeitest? (Oder habe ich das übersehen?) Dann können wir die Sourcen auch mal herunter laden und schauen, wie es strukturiert ist.
Wenn es mit Eclipse direkt geht, dann müssten da eigentlich auch Eclipse Projektdateien sein und diese kann IntelliJ auch erkennen und auswerten.
Dazu hatte ich Dir auch schon einmal ein Screenshot gesendet meine ich, wie dies im Öffnen Dialog von IntelliJ dargestellt wird.
/* Programm zum Testen der Verwendung von Variablen
* @date 2019-08-04
* @author Hans-Peter Habelitz
*/
public class Variablen1 {
public static void main(String[] args) {
// Deklarationen und Initialisierungen
byte bZahl = 28;
short sZahl = -18453;
int iZahl = 4356576;
long lZahl = 345236577970L;
float fZahl = 4.37456678f;
double dZahl = 3645.564782;
boolean bestanden = true;
char zeichen = '%';
// Ausgabe der Variablenwerte
System.out.print("bZahl=");
System.out.println(bZahl);
System.out.print("sZahl=");
System.out.println(sZahl);
System.out.print("iZahl=");
System.out.println(iZahl);
System.out.print("lZahl=");
System.out.println(lZahl);
System.out.print("fZahl=");
System.out.println(fZahl);
System.out.print("dZahl=");
System.out.println(dZahl);
System.out.print("bestanden=");
System.out.println(bestanden);
System.out.print("zeichen=");
System.out.println(zeichen);
}
}
Kannst du uns ggf. sagen, welches Buch du gerade bearbeitest? (Oder habe ich das übersehen?) Dann können wir die Sourcen auch mal herunter laden und schauen, wie es strukturiert ist.
Wenn es mit Eclipse direkt geht, dann müssten da eigentlich auch Eclipse Projektdateien sein und diese kann IntelliJ auch erkennen und auswerten.
Dazu hatte ich Dir auch schon einmal ein Screenshot gesendet meine ich, wie dies im Öffnen Dialog von IntelliJ dargestellt wird.
Variablen1.java
Datei (mit exakt dem Namen Variablen1.java
!) anlege, dann einfach IntelliJ IDEA öffne, dann in IntelliJ IDEA im Menü "File" -> "Open" anklicke und den Ordner ./projects/hallo auswähle und dann nur noch sage, dass ich bitte ein Java JDK/SDK haben möchte (da kommt eine Aufforderung im Editor der .java Datei oben), dann funktioniert alles wunderbar.Das ist nur der Projektname.In der linken Spalte steht bei dir unter "Project" "Variablen1".
Bei mir steht dort "HalloNorbert".
Wie hast du das hingekriegt?
Variablen1.java
mal irgendwo unterhalb des src/
Ordners (bzw. unter src/main/java - nach Maven Konvention).Ich fass es nicht:Du verwendest hier ja schon eine Maven Projektstruktur. Also packe die DateiVariablen1.java
mal irgendwo unterhalb dessrc/
Ordners (bzw. unter src/main/java - nach Maven Konvention).
"src" steht hier für "source" oder "sources", also zu Deutsch: "Quelltext/-dateien"
Wie du siehst, hat der Ordner-Hinweis von M.L. endlich zur Lösung meines langfristigen Problems geführt.Ok, ich habe mir jetzt auch einmal die Materialien von dem Buch herunter geladen (https://www.rheinwerk-verlag.de/programmieren-lernen-mit-java/) und angesehen:
In dem ZIP ist ein ZIP Quellcode - da ist tatsächlich absolut keine Projektstruktur enthalten. Das ist etwas sehr ärgerlich.
Folgende Wege sehe ich:
a) Du baust Dir einfach ein neues Projekt und immer wenn Du in einem Kapitel bist, schiebst Du die Dateien des Kapitels in den src bzw src/main/java Ordner (Ja nach Projektstruktur. Du erkennst den richtigen Ordner in IntelliJ daran, dass dieser blau eingefärbt ist!)
Das dürfte recht gut funktionieren - zumindest beim schnellen durchgehen habe ich nur *.java Dateien gesehen (Je nach Projekt gehören andere Dateien ggf. in einen anderen Ordner - src/main/resources wäre da ein möglicher Ordner.)
b) Du verschiebst alle Dateien in den Ordner src/main/java (bzw. src) - das bringt aber leider ein paar Probleme mit sich;
b.1) die Unterordner werden alle zu sogenannten "packages". Damit fehlt da eine erste Zeile "package Kapitel1;" oder so.
Hier müsste man also die Dateien der Reihe durchgehen und diese Zeile einfügen bzw. einfügen lassen. IntelliJ sieht das auch und bietet da einen Fix an mit ALT Enter.
b.2) Es gibt doppelte Klassen (z.B. Kreisberechnung4JOptionPane) - In einem Projekt müssen alle Klassen eindeutig sein. Durch den Fix b.1 wird dies aber mit behoben - aber Du musst zumindest diese Problemfälle beheben.
b.3) Encoding - Die Dateien sind nicht UTF-8 kodiert sondern vermutlich CP-1252 (oder was das Windows Encoding ist). Das merkt IntelliJ auch und meckert das dann an - so in der Datei Umlaute verwendet wurden wie "Fläche" oder so. Aber das kann man ggf. sogar einfach ignorieren und hat dann halt kein "ä"
Bei den Arbeitsumgebungen gibt es in den JavaUebungxx Verzeichnissen .classpath und .project, aber da kommt beim Öffnen nicht zwingend etwas sinnvolles raus. Aber evtl. lag es auch daran, dass da noch ein weiteres ZIP war, das ich ggf. hätte entpacken müssen? Ob das mit Eclipse besser geht als mit IntelliJ? Ich würde generell sagen, dass ich da bei einem Buch die Materialien eher anders gewohnt bin und diese auch anders aufbereiten würde. Aber das ist erst einmal egal. Die Kapitel solltest Du mit den Hinweisen oben zumindest erst einmal durcharbeiten können.
Falls Du ein Projekt nimmst mit Java 9 oder neuer: Achte ggf. darauf, dass Du keine module-info.java Datei hast in Deinem Projekt. Wenn, dann kannst Du diese löschen oder umbenennen (Sonst hast Du ggf. Probleme, dass Du erst herausfinden musst, was für Module Du ggf. noch dort einbinden musst.
Das wäre da erst einmal so meine Sicht auf diese Problematik - vielleicht hilft es Dir ja. Und falls Du mit den Schritten bei b Probleme hast: Die kann man Dir ggf. auch einmal aufbereiten und dir dann zukommen lassen. (Wegen Copyright aber dann nur direkt ohne Veröffentlichung im Forum).
Da ist jetzt nicht viel zu verstehen, das ist einfach der Ort, in den Sourcen reingehören, fertig. In meinem Fall bei Netbeas gehören sie standardmäßig einfach nur in scr (+Packagename natürlich), das kann man aber alles konfigurieren, wenn man damit nicht zufrieden ist.Verstehen muss ich das jetzt alles noch nicht.
src
ist nur eine Konvention die IJ auf Anhieb versteht, aber kein Muss. Jeder beliebige Ordner lässt sich zum so genannten Content Root machen...