Kann Android Studio zum Ausführen von Standard-Java-Projekten verwendet werden?

330

Für die Zeiten, in denen Sie Java isolieren und schnell testen möchten.

Können Sie Nicht-Android-Java-Projekte in Android Studio wie in Eclipse ausführen?

mgibson
quelle
2
Android Studio basiert auf IntelliJ. So sicher, es ist sicher in der Lage, "Standard" Java-Code auszuführen. Aber warum brauchst du es?
Blackbelt
1
@vmironov Ich stimme dir zu.
Blackbelt
@vmironov Das ist im Wesentlichen, was sie tun. Die Android-Funktionen sind ein IntelliJ-Plugin, sie packen es nur für Android Studio zusammen. Ich habe insbesondere Android Studio nicht verwendet, aber ich verwende IntelliJ seit einiger Zeit, und Sie sollten kein Problem damit haben, Standard-Java-Projekte darin auszuführen.
Kevin Coppock
4
@kcoppock, yep, aber dieses Plugin kann nicht zu einer "normalen" IntelliJ-IDEE hinzugefügt werden (ich habe eine gekaufte Ultimate-Version und möchte nicht wirklich zur Community-Edition zurückkehren). Die gute Nachricht ist, dass JetBrains angekündigt hat, dass es möglich sein wird, die Funktionen von Android Studio in Intellij IDEA 13
Vladimir Mironov
1
Gibt es schon eine einfache Möglichkeit, dies mit Gradle zum Laufen zu bringen? Ich stürze immer wieder ab, weil meine Gradle-Bibliotheken zur Laufzeit nicht angezeigt werden.
Katedral Pillon

Antworten:

346

Getestet auf Android Studio 0.8.6 - 3.5

Mit dieser Methode können Sie Java-Module und Android-Module im selben Projekt haben und Java-Module als eigenständige Java-Projekte kompilieren und ausführen.

  1. Öffnen Sie Ihr Android-Projekt in Android Studio. Wenn Sie noch keine haben, erstellen Sie eine.
  2. Klicken Sie auf Datei> Neues Modul . Wählen Sie Java Library und klicken Sie auf Next .
  3. Geben Sie den Paketnamen usw. ein und klicken Sie auf Fertig stellen . Sie sollten jetzt ein Java-Modul in Ihrem Android-Projekt sehen.
  4. Fügen Sie Ihren Code dem gerade erstellten Java-Modul hinzu.
  5. Klicken Sie auf die Dropdown-Liste links neben der Schaltfläche "Ausführen". Klicken Sie auf Konfigurationen bearbeiten ...
  6. Klicken Sie im neuen Fenster auf das Pluszeichen oben links im Fenster und wählen Sie Anwendung
  7. Es sollte eine neue Anwendungskonfiguration angezeigt werden. Geben Sie die Details wie Ihre Hauptklasse und den Klassenpfad Ihres Moduls ein.
  8. Klicken Sie auf OK .

Wenn Sie nun auf Ausführen klicken, sollte dies Ihr Java-Modul kompilieren und ausführen.

Wenn Sie den Fehler erhalten Error: Could not find or load main class..., geben Sie einfach Ihre Hauptklasse (wie in Schritt 7) erneut ein, auch wenn das Feld bereits ausgefüllt ist. Klicken Sie auf Übernehmen und dann auf OK .

Mein Anwendungsfall: Meine Android-App benötigt einige vorberechnete Dateien, um zu funktionieren. Diese vorberechneten Dateien werden von Java-Code generiert. Da diese beiden Dinge Hand in Hand gehen, ist es am sinnvollsten, beide Module im selben Projekt zu haben.

NEU - So aktivieren Sie Kotlin in Ihrem eigenständigen Projekt

Wenn Sie Kotlin in Ihrem eigenständigen Projekt aktivieren möchten, gehen Sie wie folgt vor.

  1. Fügen Sie im letzten Schritt oben den folgenden Code zu Ihrer Projektebene hinzu build.gradle(hinzuzufügende Zeilen sind mit >>> gekennzeichnet ):

    buildscript {
        >>> ext.kotlin_version = '1.2.51'
        repositories {
            google()
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.3'
            >>> classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    
            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }
    ...
    
  2. Fügen Sie Ihrer Modulebene den folgenden Code hinzu build.gradle(hinzuzufügende Zeilen sind mit >>> gekennzeichnet ):

    apply plugin: 'java-library'
    >>> apply plugin: 'kotlin'
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        >>> implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
        >>> runtimeClasspath files(compileKotlin.destinationDir)
    }
    ...
    
  3. Bonusschritt: Wandle deine Hauptfunktion in Kotlin um! Ändern Sie einfach Ihre Hauptklasse in:

    object Main {
        ...
        @JvmStatic
        fun main(args: Array<String>) {
            // do something
        }
        ...
    }
    
idunnololz
quelle
2
Ich kann bestätigen, dass dies in Android Studio 0.8.14 funktioniert. Ich habe ein einfaches Hello World-Projekt verwendet und eine benutzerdefinierte Klasse hinzugefügt, die eine Hauptmethode enthält. Ich habe die Datei MainActivity.java gelöscht. In Schritt 2 musste ich den Bereich Weitere Module (unten links im Fenster Neues Modul erstellen) öffnen und nach unten scrollen, um das Element Java Library zu finden. In Schritt 6 habe ich meine Anwendung benannt, Benutzerdefiniert als Hauptklasse und App für den Klassenpfad des Moduls ausgewählt. HINWEIS: Wenn Sie das App-Modul gemäß der Lösung von @ simonp löschen, wird Ihre Anwendung ausgeführt, jedoch mit Fehlern.
James Newton
Nach Schritt 2 sollte es einen weiteren Schritt geben: Fügen Sie der Klasse Code hinzu oder machen Sie ihn zumindest zu einem Hello-World-Code: docs.oracle.com/javase/tutorial/getStarted/application
Android-Entwickler
3
Aber wie kann ich ein Desktop-Projekt in eine JAR-Datei exportieren? Ich kann diese Option nirgendwo finden: /
Chris
1
Funktioniert in 2.2.2! :)
Pavel Biryukov
1
hat super funktioniert! Ich habe Android Studio 3.1.4 verwendet. Danke für das Teilen !
Birender Singh
27

EDIT: viele Mond, nachdem diese Frage gestellt wurde, ja, jetzt anscheinend können Sie.

Nein, aber es basiert auf Intellij IDEA.

Die Community-Version davon kann kostenlos heruntergeladen werden, unterstützt jedoch nicht die meisten Dinge, die eine externe Datenbank oder einen Anwendungsserver erfordern. Die Zeile für Java ist so ziemlich, dass JavaSE-Code Community gerne verwenden kann.

Wenn Sie dies möchten (oder JavaEE verwenden), benötigen Sie entweder die Ultimate-Version, die nicht kostenlos ist, oder das EAP der nächsten Version, die normalerweise einen Monat lang gültig ist, bis eine andere veröffentlicht wird.

Grundsätzlich funktioniert es so

Android Studio ist nur Android das Android Stuff von IDEA 13 Community ...

... was kostenlos sein wird und alles von IDEA 13 Ultimate ist ...

... für die keine Datenbank oder ein App-Server erforderlich ist.

http://www.jetbrains.com/idea/

IDEA 12 Community kann das gradilisierte Projekt nicht importieren und wird es auch nicht. Obwohl Sie jetzt (ich) Android-Entwicklung darin durchführen können, erwarten Sie nicht, dass es die gleichen Funktionen wie Android Studio hat. Es gibt eine Menge guter neuer Android-Sachen, die in 13 gehen.

JoeHz
quelle
3
Freue mich zu helfen! Ich persönlich liebe IDEA und verabscheue Eclipse. Dies ist das erste Mal, dass ich mit dem EAP spiele, da ich eindeutig Kompatibilität mit allen benötigen werde, die auf Android Studio migrieren.
JoeHz
Ab AS 0.5.8 ist dies nicht mehr korrekt. Sie können definitiv Standard-Java SE-Code in AS ausführen. Zumindest habe ich Erfolg beim Importieren, Entwickeln und Ausführen eines Swing-Projekts. Leider können Sie zum jetzigen Zeitpunkt kein "reguläres" Java-Projekt erstellen, zumindest nicht das, von dem ich weiß.
Code-Apprentice
3
Ab 0.6.1 können Sie. Siehe meine Antwort unten.
Simonp
5
Bitte löschen / bearbeiten Sie diese Antwort, da sie nicht mehr korrekt ist. Android Studio kann jetzt Java-Module erstellen und in der lokalen JRE ausführen.
Navin
Also ist es besser, Android-Studio für Android-Sachen und IntelliJ für Java und den Rest zu verwenden? Was ist mit der SWT-Unterstützung auf IntelliJ? Kennen Sie einen netten UI-Designer dafür? Ich brauche es hauptsächlich für die Vorschau der Benutzeroberfläche.
Android-Entwickler
18

Ein einfacher Weg, um ein Java-Programm in Android Studio auszuführen, wäre:

1) Erstellen Sie eine Java-Klasse, beispielsweise "Test.java"in Android Studio.

2) Schreiben Sie Ihren Code, z. B. ein Hello Worldzu testendes Programm.

3) Klicken Sie mit der rechten Maustaste auf die Java-Klasse und wählen Sie die Option "Test.main () 'ausführen" oder drücken Sie Strg + Umschalt + F10.

Dort läuft unten Ihr Java-Code.

Shruti Dasgopal
quelle
1
Das hat funktioniert - danke! In meinem Fall hatte ich Probleme mit dem Absturz des Gradle-Builds, als ich zum ersten Mal versuchte, dies auszuführen. Also habe ich eine gemacht Android Studio > File > Invalidate Caches / Restartund dann wurde das Problem behoben
Gene Bo
1
@Shruti Das erste Kompilieren dauert eine Weile, nachdem von der Ausführung der App zur Ausführung von test.java gewechselt wurde. Wissen Sie, ob die von ihr erstellte ausführbare Datei überhaupt zur APK-Größe hinzugefügt wird?
Patrick
17

Mit Android Studio 0.6.1+ (und möglicherweise früher) können Sie problemlos Standard-Java-Apps (nicht für Android) entwickeln.

Diese Methode wurde am 0.8.2 getestet:

Erstellen Sie zunächst eine Vanilla Android Phone-App über Datei> Neues Projekt. Fügen Sie dann ein Java Library-Modul hinzu, das Ihren Java-Anwendungscode enthält. (Wählen Sie "Java Library", auch wenn Sie eine Anwendung erstellen.) Sie werden feststellen, dass Sie Java-Apps mit main()Methoden, Swing-Apps usw. erstellen und ausführen können .

Sie möchten das automatisch generierte Android "App" -Modul löschen, das Sie nicht verwenden. Gehen Sie zu Datei -> Projektstruktur und löschen Sie sie (wählen Sie das "App" -Modul im Feld links aus und klicken Sie auf das Minus-Symbol über dem Feld). Wenn Sie nun Datei -> Projektstruktur -> Projekt erneut öffnen, werden Optionen zur Auswahl des Projekt-SDK und der Sprachstufe sowie eine Reihe weiterer Optionen angezeigt, die zuvor ausgeblendet waren. Sie können das "App" -Modul von der Festplatte löschen.

In 0.6.1 können Sie das Erstellen des Android-Moduls zunächst vermeiden:

Gehen Sie zu Datei> Neues Projekt. Geben Sie Ihren Anwendungsnamen ein. Auf der Auswahlseite "Formfaktoren", auf der Sie Ihr Mindest-Android-SDK angeben, angeben, das Kontrollkästchen "Mobil" und fahren Sie mit der Erstellung Ihres Projekts fort.

Gehen Sie nach dem Erstellen des Projekts zu Datei -> Projektstruktur -> Projekt und legen Sie Ihr JDK als "Projekt-SDK" fest. Fügen Sie ein Java Library-Modul hinzu, um Ihren Anwendungscode wie oben zu speichern.

simonp
quelle
Wo finde ich dann den Build? Wenn ich auf Build-> Make Project oder Build-> Compile 'PureJava.java' klicke, sagt Android Studio "Kompilierung erfolgreich abgeschlossen". Ich kann jedoch keine Build-Dateien finden. Ich habe das App-Modul sowie den App-Ordner gelöscht.
AndiPower
1
Konnten Sie diese Projekte debuggen?
MLProgrammer-CiM
@ MLProgrammer-CiM ja das ist möglich. Es ist mir passiert, dass die IDE beim Debuggen irgendwann in der Phase "Indizes aktualisieren" blockiert. Ich weiß nicht, was sie verursacht. Ich habe versucht, die Caches zu bereinigen und neu zu starten.
Shujito
14

Genau so sieht das Setup aus.

Geben Sie hier die Bildbeschreibung ein

Konfigurationen bearbeiten> '+'> Anwendung: Geben Sie hier die Bildbeschreibung ein

Adam Hurwitz
quelle
Hallo Adam, kann ich wissen, ob es noch funktioniert? Und warum brauchen wir Gradle für diese Anwendung? Könnte das Projekt weiter bereinigt werden, sodass nur die minimalen Dateien vorhanden sind?
Harsha
Hallo @Harsha, ich habe dies 2016 als Experiment implementiert. Ich habe dies kürzlich nicht implementiert, da ich eigenständiges IntelliJ für Backend-Kotlin / Java-Anwendungen verwende. Fühlen Sie sich frei, die Kommentare / Beiträge mit Ihren aktualisierten Ergebnissen zu aktualisieren.
Adam Hurwitz
5

Ich fand eine etwas hackige, nervige und nicht ganz sichere Lösung dafür. Ich wollte teilen, falls jemand anderes es nützlich findet.

In Android Studio können Sie mit der rechten Maustaste auf eine Klasse mit einer Hauptmethode klicken und ".main () ausführen" auswählen. Dadurch wird eine neue Ausführungskonfiguration für YourClass erstellt, die jedoch nicht ganz funktioniert: Es fehlen einige Klassenpfadeinträge.

Um die fehlenden Klassenpfadeinträge zu beheben, rufen Sie die Projektstruktur auf und fügen Sie den Speicherort des Ausgabeordners für Ihr Modul und alle anderen benötigten Modulabhängigkeiten manuell hinzu:

  • Datei -> Projektstruktur ...
  • Wählen Sie im Bereich "Projekteinstellungen" in der linken Spalte "Module" aus
  • Wählen Sie Ihr Modul in der Liste der Module in der mittleren Spalte aus
  • Wählen Sie im rechten Bereich die Registerkarte "Abhängigkeiten"

Und dann für das Modul, in dem Sie Ihre Java-Anwendung haben, sowie für jede der Modulabhängigkeiten, die Sie benötigen: - Klicken Sie ganz rechts im rechten Spaltenbereich auf "+" -> "Jars oder Verzeichnisse". - Navigieren Sie zur Ausgabe Ordner des Moduls (zB: my_module / build / classes / main / java) und klicken Sie auf "OK" - Ändern Sie im neuen Eintrag in der Abhängigkeitsliste ganz rechts das Auswahlfeld von "Kompilieren" in "Laufzeit".

Danach sollten Sie in der Lage sein, die soeben erstellte Ausführungskonfiguration auszuführen, um die einfache Java-Anwendung auszuführen.

Eine Sache, die zu beachten ist, ist, dass ich für meine spezielle [ziemlich involvierte] Android Studio-Projekteinrichtung das Projekt manuell mit gradle von außerhalb von Android Studio erstellen muss, damit meine einfachen Java-Anwendungsklassen vor dem Ausführen erstellt werden können die Anwendung - Ich denke, das liegt daran, dass die Run-Konfiguration vom Typ "Application" nicht den entsprechenden Gradle-Build auslöst.

Schließlich wurde dies unter Android Studio 0.4.0 durchgeführt.

Ich hoffe, andere finden es nützlich. Ich hoffe auch, dass Google diese Funktionalität bald unterstützt.

Julian Cerruti
quelle
1
I have to manually build the project with gradle, from outside Android StudioWie machst du das?
Katedral Pillon
3

Ich habe die IntelliJ IDEA-Community-Version von http://www.jetbrains.com/idea/download/ installiert.

Ich habe versucht, mein Projekt zu öffnen, das ich in Android Studio gestartet habe, aber es ist beim Gradle Build fehlgeschlagen. Ich öffnete stattdessen sowohl Android Studio als auch Intellij gleichzeitig und platzierte einen Bildschirm neben dem anderen und zog meine Java-Dateien, XML-Layouts, Drawables und Manifest einfach per Drag & Drop in das Projekt hiearchy eines neuen Projekts, das in IntelliJ gestartet wurde. Es hat die Probleme mit dem Gradle-Build umgangen und jetzt kann ich ein neues Projekt in IntelliJ starten und entweder eine Android-App oder eine einfache Java-App entwerfen. Zum Glück hat das funktioniert, weil ich es hasste, so viele IDEs auf meinem PC zu haben.

cjayem13
quelle
3

Ich konnte dies mit den folgenden Schritten tun:

  1. Öffnen Sie Android Studio und wählen Sie "Projekt importieren".
    Android Studio importiert ein Projekt

  2. Navigieren Sie im Suchfenster zu Ihrem Projektordner und wählen Sie ihn aus.

Loveleen Saini
quelle
0

Getestet in Android Studio 0.8.14:
Ich konnte ein Standardprojekt mit minimalen Schritten auf diese Weise zum Laufen bringen:

  • Klicken Sie in einem geöffneten Android Studio-Projekt auf Datei> Neues Modul.
  • Klicken Sie auf Weitere Module> Java-Bibliothek> Weiter und geben Sie die gewünschten Namen ein.
  • Ein neues Modul wird als Ordner auf derselben Ebene wie Ihr "App" -Ordner in der Projektstruktur angezeigt. Öffnen Sie es und öffnen Sie die neue Java-Klassendatei.

    Sie können dann Ihren Code hinzufügen und Build> Run 'YourClassName' wählen. Presto, dein Code läuft ohne Android-Gerät!

  • John
    quelle
    Wie unterscheidet sich diese Antwort von der von @idunnololz? Arbeitet Ihr mit gradle ohne zusätzliche Schritte?
    Katedral Pillon
    0

    Es funktioniert perfekt, wenn Sie Datei> Öffnen ... ausführen und dann die Datei pom.xml auswählen. Stellen Sie sicher, dass Sie das Dropdown-Menü oben links in der Seitenleiste mit der Aufschrift "Android" in "Projekt" ändern, um alle Ihre Dateien anzuzeigen. Ich denke auch, dass es hilfreich ist, wenn sich der Ordner Ihrer pom.xml-Datei in einem Ordner namens "app /" befindet.

    Haftungsausschluss: Mein Java-Projekt wurde von Google App Engine generiert.

    Jacob Ferrero
    quelle
    Müssen Sie Ihre Abhängigkeiten auf den Pom verschieben oder wird es das Gradle-Zeug sehen?
    Katedral Pillon
    0

    Verbrachte einen Tag damit, den einfachsten Weg zu finden, dies zu tun. Ziel war es, den schnellsten Weg zu finden, um dieses Ziel zu erreichen. Ich konnte es nicht so schnell machen, wie den Befehl javac vom Terminal aus auszuführen oder aus Netbeans oder erhabenem Text 3 zu kompilieren. Aber mit Android Studio habe ich immer noch eine gute Geschwindigkeit.

    Das sieht sehr gut aus, aber da wir keine täglichen Projekte initiieren, bin ich in Ordnung, dies zu tun.

    Ich habe die Community-Version von IntelliJ IDEA heruntergeladen und ein einfaches Java-Projekt erstellt. Ich habe eine Hauptklasse hinzugefügt und einen Lauf getestet. Dann einfach IntelliJ IDEA geschlossen und Android Studio geöffnet und dort das gleiche Projekt geöffnet. Dann musste ich einfach JDK anhängen, wo IDE mir half, indem es eine Liste der verfügbaren JDKs zeigte, und ich wählte 1.8 aus und dann wurde es gut kompiliert. Ich kann jetzt jede Hauptdatei öffnen und Strg + Umschalt + R drücken, um diese Hauptdatei auszuführen.

    Dann habe ich alle meine Java-Dateien von Mac OS Finder in den Ordner src kopiert. Und ich kann alles zusammenstellen, was ich will.

    Es gibt nichts mit Gradle oder Android zu tun und die Kompilierungsgeschwindigkeit ist ziemlich gut.

    Danke Freunde

    Asif Ashraf
    quelle
    0

    Um eine Java-Datei in Android auszuführen, stellen Sie sicher, dass Ihre Klasse über die Hauptmethode verfügt. In Android Studio 3.5 klicken Sie einfach mit der rechten Maustaste in die Datei und wählen Sie "Run 'Filename.main ()'" oder klicken Sie im Menü auf "Run" und wählen Sie "Run Filename" aus dem resultierenden Dropdown-Menü.

    Alabi
    quelle