Autor |
Beitrag |
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: So 05.03.17 14:34
Hallo Programmierfreunde!
Zur Zeit stehe ich wieder vor dem Problem, Nicht-Pascal-Quelltext zum Laufen zu bringen, diesmal Java.
Es geht um diese Datei, ich hänge sie der Einfachheit halber einfach hier als komprimiertes Archiv an.
In ein bestehendes Java-Projekt, das in Eclipse (neon.2) übersetzt und ausgeführt wird, bekam ich diese Datei nicht erfolgreich eingebunden (in den Ordner source kopiert, dann "refresh", aber schon dann wird das Projekt nicht mehr compiliert, obwohl noch gar kein Unterprogramm dieser Java-Datei aufgerufen wird.
Also als nächstes ein neues Java-Projekt erstellt und dann die angehängte Datei dort per Drag-and-Drop nach source (in der Eclipse-IDE) hineinkopiert, das läßt wenigstens den Inhalt der Datei erscheinen (na gut, soweit war ich beim bestehenden Projekt auch schon). Die Just-in-Time-Syntaxprüfung mosert einiges an der Datei herum, jedoch scheint das - jedenfalls in der Mehrzahl - nichts bedeutsamen zu sein, denn der Sourcecode wird kaum oder gar nicht fehlerhaft sein.
Kurzum, weiß jemand, wie man diese Datei erfolgreich in ein Java-Projekt eingebunden bekommt?
Falls ich wenigstens das schaffen würde, wäre die nächste Herausforderung, eine Liste zu erstellen, zu füllen und an die Hauptprozedur zu übergeben.
Danke für Eure Geduld und Mühe!
Beste Grüße
Delphi-Laie
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von Delphi-Laie am So 05.03.17 22:19, insgesamt 1-mal bearbeitet
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 05.03.17 19:27
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: Delphi-Laie
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: So 05.03.17 23:00
Vielen Dank, Frühlingsrolle! Ich schätze und befürchte, daß ich es nicht hinbekommen werde.
Frühlingsrolle hat folgendes geschrieben : | Guten Abend Delphi-Laie,
die Datei, die du hast, beinhaltet ein Package mit einer Klasse "Order". Es dürfte sich über "Öffnen" importieren lassen. |
Hier geht nämlich schon die erste Frage los: Inwiefern "öffnen"? "Open File"? Kann ich tun, dann erscheint ein weiteres Editfenster im Reiter. Ist dieses aufgerufen, und drücke ich dann auf den weißen Pfeil auf grünem Untergrund ("Run main"), fragt er mich nach irgendeinem zweier "Ant Build"s (Ameisen? Was, zum Teufel, haben die damit zu tun?), aber keines davon bringt Erfolg. Diese Datei "order" enthält ja auch nur eine Klasse, keine "main"-Prozedur, insofern kann auch nichts passieren. Soviel über C & Co. weiß sogar ich.
Ich kopiere diese order.java-Datei in das source-Verzeichnis des schon bestehenden Projektes, refreshe, "order" erscheint in der Liste der source-Dateien und versuche wenigstens, in der "main.java" bei den anderen imports mit "import order;" eine Verbindung herzustellen, aber warum sollte es so klappen wie in Delphi?! Nein, tut es natürlich nicht: "The import order cannot be resolved". Edit: Mit "import order.java" scheint er doch wenigstens an den Inhalt der Datei zu gelangen, kompilieren tut aber dennoch nichts.
Frühlingsrolle hat folgendes geschrieben : | Du kannst es auch etwas umständlicher machen, indem du im bestehenen leeren Projekt, ein neues Package "Order" erstellst.
Im Anschluss erstellst du eine Klasse mit dem Namen "Order" und verbindest diese mit dem erstellten Package.
Nur noch Copy und Paste des eigentlichen Quelltextes, den Package-Namen anpassen auf "Order" und schon solltest du es kompilieren können. |
Tja, so einfach ist es....Java ist ja sooo einfach (versucht jedenfalls ein Softwaretrainer im Internet, Leuten Appetit auf seine Kurse zu machen)....Ich bekomme nicht mal ein leere, beschreibbares Projekt in der Eclipse hin. Es ist eben nichts, sich auf unbekannte Terrains ohne Sprachkenntnisse zu wagen. Doch ich werde mich nicht monatelang mit Java herumquälen, nur, um diese eine Klasse zum Laufen zu bringen. Wie Leute behaupten können, wie ungemein wichtig und hilfreich Vorkenntnisse sind, ist mir auch eher schleierhaft. Trotz inzwischen fast 30 Jahren (!!) Programmiererfahrung - zugegebenermaßen fast ausschließlich anfangs in BASIC, später Pascal & Co. - stehe ich wiederum fast wie ein Schweinchen vor einem Uhrwerk, wie ein Analphabet da. Naja, ich kann Euch nicht ewig und über Gebühr zu beanspruchen wagen, vielleicht finde ich ja noch eine gute Anleitung; bisher fand ich nur solche, die mir Bedingungen und Schleifen beibringen möchten, aber so etwas suche ich nicht.
Nochmals besten Dank für Deine Mühe!
Noch ein Edit: Die Eclipse bietet für diese ach so einfache Programmiersprache bereits ein mehrstufiges Tutorial an, um so etwas banales wie ein einfaches "Hello World"-Programm zu erstellen. Ich bleibe dran...
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Mo 06.03.17 00:08
So, Update: "Irgendwie" habe ich es geschafft, ein "Hello World"-Projekt zu beginnen, dort eine Order-Package und eine Order-Klasse zu erstellen sowie den relevanten Quellcode der Order.java-Datei in die Order-Klasse zu kopieren. Das Ergebnis meiner Mühen findet sich im Anhang.
Ich verstehe schon, daß "package" das Pendant zur Unit ist und "import" das Pendant zu "uses" (class, private und public sind mir auch klar). Nur verstehe ich nicht, warum "import Order" (oder "import Order.java") in der Datei "HelloWorld.java" nun nicht klappt. Das ist eben der Unterschied zu Pascal.
Vielleicht weißt Du, vielleicht weiß jemand anderes, woran das liegen könnte.
Nochmals danke für die Aufmerksamkeit!
Gruß
Delphi-Laie
Einloggen, um Attachments anzusehen!
|
|
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 06.03.17 00:34
- Nachträglich durch die Entwickler-Ecke gelöscht -
Für diesen Beitrag haben gedankt: Delphi-Laie
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Mo 06.03.17 14:41
Ein ganz dickes Dankeschön, liebe Frühlingsrolle! Ich bin jetzt endlich erstmalig soweit, dieses package, diese Klasse wenigstens eingebunden zu haben. Endlich mal kein Rot, endlich kompiliert es.
Nun stehe ich "nur" noch, analog hier, vor dem Problem, eine Liste zu erstellen, zu befüllen und die Sortierprozedur damit aufzurufen. Ich werde mich bemühen.
Frühlingsrolle hat folgendes geschrieben : | Entschuldige, ich habe dich warten lassen. |
Gibt es nichts zu entschuldigen, Du bist ja zu nichts verpflichtet, und jeder andere kann ja auch antworten.
Frühlingsrolle hat folgendes geschrieben : | Java kann nichts dafür dass die jeweiligen Entwicklungsumgebungen mehr oder weniger Benutzerfreundlich sind.
Man gewöhnt sich mit der Zeit daran, wenn man die nötige Routine hat.
Netbeans ist auch eine gute Java IDE. Probier sie eventuell aus. Vielleicht sagt sie dir mehr zu. |
Ja, mir ist der Unterschied zwischen Entwicklungsumgebung und Programmiersprache durchaus bewußt, und daß es auch Netbeans gibt, ist mir wohlbekannt (auch schon heruntergeladen, aber noch nicht installiert). Ich hatte bereits vor Jahren ein Javaprojekt mit der - logischerweise damaligen - Eclipse erfolgreich "erforscht" und war damals ganz zufrieden damit. Inzwischen hat sich bei der eclipse einiges getan, und vom ersten Eindruck her gefällt sie mir ganz gut.
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Mo 06.03.17 18:26
OK, Frühlingsrolle und die anderen, wenn ich noch mal stören darf, ich komme nun trotz Internetrecherche nicht weiter.
Funktionieren tut bisher:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| import java.util.*; //import Order.Order;//funktioniert anscheinend auch import Order.*;
public class HelloWorld {
public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Hello world!"); List<Integer> myList = new ArrayList<Integer>(); myList.add(5); myList.add(4); myList.add(3); myList.add(2); myList.add(1); //sortSmooth(myList); System.out.println(myList.get(0)); System.out.println(myList.get(1)); System.out.println(myList.get(2)); System.out.println(myList.get(3)); System.out.println(myList.get(4)); } } |
Nehme ich nun die Zeile
Quelltext
hinzu, kommt links das beliebte rote Symbol, und die Fehlermeldung Zitat: | The method sortSmooth(List<Integer>) is undefined for the type HelloWorld |
ist links am Zeilenanfang abrufbar. Verstehe ich nicht. Die Klasse "Order" in der Datei "Order.java" ist öffentlich:
Quelltext
und die in ihr enthaltende Prozedur sortSmooth direkt eine Hierarchieebene darunter ist es auch:
Quelltext 1:
| public static void sortSmooth(List ls) |
Der Import
Quelltext
müßte doch in der "HelloWorld"-Klasse "ankommen", denn entferne ich den Import
Quelltext
, findet er
Quelltext 1:
| List<Integer> myList = new ArrayList<Integer>(); |
nicht mehr.
Was ist falsch?
Vielen Dank und Grüße
Delphi-Laie
Edit: Heureka, so einfach ist es:
Quelltext 1:
| Order.sortSmooth(myList); |
und es sortiert auch! Herzlichen Dank nochmal, der nächste Sortieralgorithmus wird also bald Einzug in mein Animationsprogramm finden.
|
|
Th69
Beiträge: 4776
Erhaltene Danke: 1054
Win10
C#, C++ (VS 2017/19/22)
|
Verfasst: Mo 06.03.17 18:37
Bei statischen Methoden muß immer der Klassenname davor stehen:
Quelltext 1:
| Order.sortSmooth(myList); |
Die import-Anweisung sorgt nur dafür, daß du den kompletten Namensbereich davor nicht angeben mußt, s.a. Importieren von Paketen und Klassen.
Edit: ups, ein bißchen zu spät
Zuletzt bearbeitet von Th69 am Mo 06.03.17 20:55, insgesamt 1-mal bearbeitet
Für diesen Beitrag haben gedankt: Delphi-Laie
|
|
Delphi-Laie
Beiträge: 1600
Erhaltene Danke: 232
Delphi 2 - RAD-Studio 10.1 Berlin
|
Verfasst: Mo 06.03.17 18:41
|
|
|