Ich habe vor kurzem eine Coding-Seite mit Codierungswettbewerben entdeckt: CodinGame , und um die Probleme zu lösen, müssen wir sie nur übergeben eine Datei mit einer Hauptdatei (im folgenden Beispiel die Klasse Player
), und wenn andere Klassen benötigt werden, nehmen wir sie in diese Datei auf.
Zu diesem Zweck (und ich habe gesehen, dass ich für eine andere Coding-Site arbeite) habe ich intelliJ und die Plugin CHelper , um alle Quelldateien in eine Java-Datei zu schreiben (es soll die sein Zweck des CHelper-Plugins). Das Problem ist: Ich verstehe nicht, wie ich dieses Plugin für meine Coding-Site verwenden / einrichten kann. Ich weiß, dass es funktionieren sollte, weil ein anderer Benutzer dieser Seite das Plugin bereits für diesen Zweck benutzt hat.
Für ein detaillierteres Beispiel was ich will, hier ist die Klasse mit einem Haupt:
%Vor%Und diese Klasse Cell ist in einer anderen Java-Datei:
%Vor%Und ich möchte, dass das Plugin die zwei (oder mehr) Java-Dateien zusammenführt, um das zu haben:
%Vor%Ich habe IntelliJ korrekt installiert und das CHelper-Plugin heruntergeladen. Ich habe die Symbolleisten-Menüschaltflächen installiert, die mit TopCoder verknüpft sind (der Site, für die dieses Plugin ausdrücklich vorgesehen ist), aber die Schaltfläche Launch TopCoder löst eine RuntimeException aus: Programm kann nicht ausgeführt werden ... / javaws keine solche Datei. Mit einigen Aufgaben, die von TopCoder heruntergeladen wurden, gelang es mir, 2 Dateien zu einer zusammenzufassen: TaskA.java in Main.java (mit heruntergeladenen Vorlagen)
Wenn ein Eclipse -Plugin funktionieren könnte, wie ich es möchte, würde ich mich sehr darüber freuen. Genau das war es, was ich zu Beginn meiner Suche suchte, und ich fand nur ein Plugin für die IntelliJ IDE.
Also habe ich endlich einen Weg gefunden, das zu tun, was ich wollte: Der Typ, der es getan hat, teilte mir einen Link zu die Hilfe brauchte ich.
Ich werde es hier speziell für CodinGame zusammenfassen.
Die wichtigen Schaltflächen zum Hinzufügen zur Menüleiste sind
Jetzt haben wir einige Knöpfe im roten Rechteck:
Dann müssen wir edit project settings
:
Als nächstes müssen wir eine neue Aufgabe erstellen (grüne Schaltfläche "+") und sie mit der Option advanced
einrichten. Wir fügen die Testeingabe und die bekannte Ausgabe mit der Schaltfläche Edit tests
hinzu. Wir sagen, dass die generierte Datei Solution.java
heißen soll und die Klasse, in die wir schreiben wollen, wird CGXFormatter.java
Wir haben jetzt zwei Dateien, die in unserem Paket .../puzzle
:
CGXFormatter.java
mit einer Methode solve
, wo wir die Eingabe lesen und unsere Antwort in der Ausgabe CGXFormatter.task
, das die Informationen zu den Testfällen usw. enthält, damit das Plugin die Quelldatei Zum Beispiel drucken wir einfach "Dies ist das Ergebnis" in unserer CGXFormatter
-Klasse (aber wir hätten eine andere Klassendatei erstellen und sie aufrufen können, es hätte funktioniert, indem wir die Definition der Klasse in die generierte Lösungsklasse). So:
Letzter Schritt: Klicken Sie auf Ausführen. Dann haben wir das Verzeichnis generated
, das erstellt wird, und darin haben wir die Solution.java
Datei neu generiert. Wir können das lesen:
Okay, es gibt immer noch ein kleines Problem: In CodingGame sollte die Lösungsklasse nicht public
davor haben, also setze einfach class Solution
anstelle von public class Solution
und du bist fertig.
Wenn Sie möchten, können Sie es auch in ein Skript einfügen, um es automatisch mit einem multirun (Plugin zur Installation in IDEA, auch) zu tun.
Das ist es, du bist fertig.
Als Randnotiz bemerkte ich, dass out.println
nicht so funktionierte, wie ich es vorhatte (ich weiß nicht warum), also habe ich es durch System.out.println
ersetzt, anstatt die% vorgeschlagenes Objekt out
in der Methode solve
.
Tags und Links eclipse java intellij-idea