Android Studio può essere utilizzato per eseguire progetti Java standard?


331

Per quelle volte in cui si desidera isolare Java e dargli un rapido test.

Puoi eseguire progetti Java non Android in Android Studio come in Eclipse?


2
Android Studio si basa su IntelliJ. Quindi, sicuramente, è in grado di eseguire codice java "standard". Ma perché ne hai bisogno?
Blackbelt,

1
@vmironov Sono d'accordo con te.
Blackbelt,

@vmironov Questo è essenzialmente quello che stanno facendo. Le funzionalità di Android sono un plug-in IntelliJ, lo impacchettano insieme per Android Studio. Non ho usato Android Studio in particolare, ma uso IntelliJ da un po 'e non dovresti avere problemi a eseguire progetti Java standard al suo interno.
Kevin Coppock,

4
@kcoppock, sì, ma questo plugin non può essere aggiunto a una "solita" IDEA IntelliJ (ho una versione Ultimate acquistata e non voglio tornare all'edizione Community). La buona notizia è che JetBrains ha annunciato che sarà possibile avere le funzionalità di Android Studio in Intellij IDEA 13
Vladimir Mironov,

1
C'è ancora un modo semplice per farlo funzionare con Gradle? Continuo a bloccarmi perché non è in grado di vedere le mie librerie Gradle in fase di esecuzione.
Katedral Pillon,

Risposte:


347

Testato su Android Studio 0.8.6 - 3.5

Usando questo metodo puoi avere moduli Java e moduli Android nello stesso progetto e avere anche la possibilità di compilare ed eseguire moduli Java come progetti Java autonomi.

  1. Apri il tuo progetto Android in Android Studio. Se non ne hai uno, creane uno.
  2. Fai clic su File> Nuovo modulo . Selezionare la libreria Java e fare clic su Avanti .
  3. Inserisci il nome del pacchetto, ecc. E fai clic su Fine . Ora dovresti vedere un modulo Java all'interno del tuo progetto Android.
  4. Aggiungi il tuo codice al modulo Java che hai appena creato.
  5. Fai clic sul menu a discesa a sinistra del pulsante Esegui. Fai clic su Modifica configurazioni ...
  6. Nella nuova finestra, fai clic sul segno più in alto a sinistra nella finestra e seleziona Applicazione
  7. Dovrebbe apparire una nuova configurazione dell'applicazione, inserire i dettagli come la classe principale e il percorso di classe del modulo.
  8. Clicca OK .

Ora se fai clic su Esegui, questo dovrebbe compilare ed eseguire il tuo modulo Java.

Se ricevi l'errore Error: Could not find or load main class..., inserisci di nuovo la tua classe principale (come hai fatto nel passaggio 7) anche se il campo è già compilato. Fai clic su Applica e poi su OK .

Il mio caso d'uso: la mia app Android si basa su alcuni file pre-calcolati per funzionare. Questi file pre-calcolati sono generati da un codice Java. Dato che queste due cose vanno di pari passo, ha più senso avere entrambi questi moduli nello stesso progetto.

NOVITÀ - Come abilitare Kotlin nel tuo progetto autonomo

Se si desidera abilitare Kotlin all'interno del progetto autonomo, attenersi alla seguente procedura.

  1. Continuando dall'ultimo passaggio sopra, aggiungi il seguente codice al tuo livello di progetto build.gradle(le righe da aggiungere sono indicate da >>> ):

    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. Aggiungi il codice seguente a livello di modulo build.gradle(le righe da aggiungere sono indicate da >>> ):

    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. Passaggio bonus: converti la tua funzione principale in Kotlin! Cambia semplicemente la tua classe principale in:

    object Main {
        ...
        @JvmStatic
        fun main(args: Array<String>) {
            // do something
        }
        ...
    }
    

2
Posso confermare che funziona in Android Studio 0.8.14. Ho usato un progetto Hello World di base e ho aggiunto una classe personalizzata contenente un metodo principale. Ho eliminato il file MainActivity.java. Al passaggio 2, avevo bisogno di rivelare il riquadro Altri moduli (in basso a sinistra nella finestra Crea nuovo modulo) e scorrere verso il basso per trovare l'elemento della libreria Java. Al passaggio 6, ho chiamato la mia applicazione, selezionato Personalizzato come mia classe principale e app per il percorso di classe del modulo. NOTA: se si elimina il modulo dell'app, come da soluzione di @ simonp, l'applicazione verrà eseguita, ma con errori.
James Newton,

Dovrebbe esserci un altro passaggio dopo il passaggio 2: aggiungi il codice alla classe, o almeno rendilo un
sviluppatore Android

3
Ma come posso esportare un progetto desktop in un file .jar? Non riesco a trovare questa opzione da nessuna parte: /
Chris

1
Funziona in 2.2.2! :)
Pavel Biryukov,

1
ha funzionato alla grande! Ho usato Android Studio 3.1.4. Grazie per la condivisione !
Birender Singh,

27

EDIT: molte luna dopo che questa domanda è stata posta, sì, ora apparentemente è possibile.

No, ma si basa su Intellij IDEA.

La versione della community è gratuita per il download ma non supporta la maggior parte delle cose che richiedono un database esterno o un server delle applicazioni. La linea per Java è praticamente che il codice JavaSE può usare felicemente Community.

Se lo desideri (o stai usando JavaEE) allora hai bisogno della versione Ultimate, che non è gratuita, o dell'EAP della prossima versione che di solito è valida per un mese fino a quando non ne rilasciano un'altra.

Fondamentalmente funziona così

Android Studio è solo Android roba Android dalla community IDEA 13 ...

... che sarà gratuito, ed è tutto da IDEA 13 Ultimate ...

... che non richiede un database o un server app.

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

La community IDEA 12 non ha la capacità di importare il progetto graduale e non lo farà, quindi mentre puoi fare lo sviluppo Android al suo interno (lo faccio), non aspettarti che abbia le stesse funzionalità di Android Studio. Ci sono un sacco di buone novità su Android, che entreranno in 13.


3
Felice di aiutare! Personalmente adoro IDEA e detesto Eclipse. Questa è la prima volta che vado a giocare con l'EAP perché chiaramente avrò bisogno di compatibilità con tutti coloro che migrano su Android Studio.
JoeHz,

A partire da AS 0.5.8, questo non è più corretto. Puoi sicuramente eseguire il codice Java SE standard in AS. Almeno ho avuto successo nell'importare un progetto Swing, svilupparlo ed eseguirlo. Sfortunatamente, non è possibile creare un progetto Java "normale" al momento della stesura di questo documento, almeno non di cui io sia a conoscenza.
Apprendista di codice

3
A partire da 0.6.1 puoi. Vedi la mia risposta qui sotto.
simonp,

5
Elimina / modifica questa risposta poiché non è più corretta. Android Studio ora può creare moduli Java ed eseguirli nel JRE locale.
Navin,

Quindi è meglio usare Android-Studio per roba Android e IntelliJ per Java e il resto? Che dire del supporto SWT su IntelliJ? Conosci un bel designer dell'interfaccia utente per questo? Ne ho bisogno soprattutto per l'anteprima dell'interfaccia utente.
sviluppatore Android

18

Un modo semplice per eseguire un programma Java in Android Studio sarebbe,

1) Crea una lezione Java dire "Test.java"in Android Studio.

2) Scrivi il tuo codice, ad esempio un Hello Worldprogramma da testare.

3) Fare clic con il tasto destro sulla classe Java e selezionare l'opzione "Esegui 'Test.main ()'" o premere Cntrl + Maiusc + F10.

Qui hai il tuo codice Java in esecuzione di seguito.


1
Questo ha funzionato - grazie! Nel mio caso stavo avendo problemi con l'arresto anomalo della build gradle, quando ho provato a eseguirlo per la prima volta. Così ho fatto un Android Studio > File > Invalidate Caches / Restarte poi il problema è stato risolto
Gene Bo,

1
@Shruti Ci vuole del tempo per compilare la prima volta dopo il passaggio dall'esecuzione dell'app all'esecuzione del test.java. Sai se l'eseguibile che sta creando viene aggiunto alla dimensione APK?
Patrick,

17

Con Android Studio 0.6.1+ (e forse prima) puoi facilmente sviluppare app Java standard (non Android).

Questo metodo è stato testato su 0.8.2:

Inizia creando un'app per telefono Android vanilla, usando File> Nuovo progetto. Quindi aggiungere un modulo Libreria Java per contenere il codice dell'applicazione Java. (Scegli "Libreria Java" anche se stai creando un'applicazione). Scoprirai che puoi creare ed eseguire app Java con main()metodi, app Swing ecc.

Ti consigliamo di eliminare il modulo "app" Android generato automaticamente, che non stai utilizzando. Vai a File -> Struttura del progetto ed eliminalo (seleziona il modulo "app" nella casella a sinistra e fai clic sull'icona "meno" sopra la casella). Ora quando riapri File -> Struttura del progetto -> Progetto, vedrai le opzioni per selezionare l'SDK del progetto e il livello di lingua, oltre a un mucchio di altre opzioni che erano precedentemente nascoste. Puoi andare avanti ed eliminare il modulo "app" dal disco.

In 0.6.1 potresti evitare di creare il modulo Android in primo luogo:

Vai a File> Nuovo progetto. Inserisci il nome della tua domanda. Nella pagina di selezione dei "fattori di forma", in cui si indica l'SDK Android minimo, deselezionare la casella di controllo Mobile e procedere con la creazione del progetto.

Una volta creato il progetto, vai su File -> Struttura del progetto -> Progetto e imposta il tuo JDK come "Project SDK". Aggiungi un modulo Libreria Java per contenere il codice dell'applicazione come sopra.


Dove posso trovare la build quindi? Se faccio clic su Costruisci-> Crea progetto o Costruisci-> Compila lo studio Android 'PureJava.java' dice "Compilazione completata correttamente". Ma non riesco a trovare alcun file di build. Ho eliminato il modulo dell'app e la cartella dell'app.
AndiPower

1
Sei stato in grado di eseguire il debug di tali progetti?
MLProgrammer-CiM

@ MLProgrammer-CiM sì, è possibile. Mi è successo che durante il debug, l'IDE si blocca ad un certo punto nella fase di "aggiornamento degli indici", non so cosa lo stia causando, ho provato a pulire le cache e riavviare.
Shujito,

14

Ecco esattamente come appare l'installazione.

inserisci qui la descrizione dell'immagine

Modifica configurazioni> '+'> Applicazione: inserisci qui la descrizione dell'immagine


Ciao Adam, posso sapere se funziona ancora? E perché dovremmo aver bisogno di un gradle per questa applicazione? Il progetto potrebbe essere ulteriormente ripulito in modo che siano presenti solo i file minimi scoperti?
Harsha

Ciao @Harsha, l'ho implementato come un esperimento nel 2016. Non l'ho implementato di recente poiché utilizzo IntelliJ autonomo per le applicazioni back-end Kotlin / Java. Sentiti libero di aggiornare i commenti / post con i risultati aggiornati.
Adam Hurwitz,

5

Ho trovato una soluzione un po 'confusa, fastidiosa e non completamente sicura che funzioni sempre. Volevo condividere nel caso in cui qualcun altro lo trovasse utile.

In Android Studio, puoi fare clic con il pulsante destro del mouse su una classe con un metodo principale e selezionare "Esegui .main ()". Questo creerà una nuova configurazione Run per YourClass, anche se non funzionerà del tutto: mancheranno alcune voci del percorso di classe.

Per correggere le voci mancanti del percorso di classe, vai nella Struttura del progetto e aggiungi manualmente il percorso della cartella di output per il tuo modulo e tutte le altre dipendenze del modulo che ti servono, in questo modo:

  • File -> Struttura del progetto ...
  • Seleziona "Moduli" nel pannello Impostazioni progetto sul pannello della colonna di sinistra
  • Seleziona il tuo modulo nell'elenco dei moduli nel pannello della colonna centrale
  • Seleziona la scheda "Dipendenze" nel riquadro della colonna di destra

E poi per il modulo in cui hai la tua applicazione Java e per ciascuna delle dipendenze del modulo di cui hai bisogno: - Fai clic su "+" -> "Barattoli o directory" all'estrema destra del pannello della colonna di destra - Vai all'output cartella del modulo (ad es. my_module / build / classes / main / java) e fare clic su "OK" - Nella nuova voce dell'elenco Dipendenze, all'estrema destra, modificare la casella di selezione da "Compila" a "Runtime"

Successivamente, dovresti essere in grado di eseguire la configurazione Esegui che hai appena creato per eseguire la semplice applicazione Java.

Una cosa da notare è che, per la mia particolare configurazione del progetto Android Studio (abbastanza coinvolto), devo costruire manualmente il progetto con gradle, dall'esterno di Android Studio per far costruire le mie semplici classi di applicazioni Java, prima di eseguire l'applicazione - Penso che ciò sia dovuto al fatto che la configurazione Run del tipo "Applicazione" non sta attivando la build Gradle corrispondente.

Infine, questo è stato fatto su Android Studio 0.4.0.

Spero che altri lo trovino utile. Spero anche che Google arrivi presto a supportare questa funzionalità.


1
I have to manually build the project with gradle, from outside Android StudioCome si fa a farlo?
Katedral Pillon,

3

Ho installato la versione della community IntelliJ IDEA da http://www.jetbrains.com/idea/download/

Ho provato ad aprire il mio progetto che ho avviato in Android Studio, ma non è riuscito durante la compilazione gradle. Ho invece aperto sia Android Studio che Intellij contemporaneamente e ho posizionato uno schermo accanto all'altro, trascinando semplicemente i miei file java, i layout xml, i disegni e il manifest nel progetto che ho cercato in un nuovo progetto avviato in IntelliJ. Ha funzionato attorno ai problemi di build gradle e ora posso iniziare un nuovo progetto in IntelliJ e progettare un'app Android o un'app Java di base. Per fortuna ha funzionato perché odiavo avere così tanti IDE sul mio pc.


3

Sono stato in grado di farlo utilizzando i seguenti passaggi:

  1. Apri Android Studio e seleziona "Importa progetto".
    Android Studio importa un progetto

  2. Passare alla cartella del progetto nella finestra Sfoglia e selezionarla.


0

Testato su Android Studio 0.8.14:
Sono stato in grado di eseguire un progetto standard con passi minimi in questo modo:

  • In un progetto Android Studio aperto, fai clic su File> Nuovo modulo.
  • Fai clic su Altri moduli> Libreria Java> Avanti, quindi inserisci quello che preferisci per i nomi.
  • Un nuovo modulo verrà visualizzato come una cartella sullo stesso livello della cartella "app" nella struttura del progetto. Aprilo e apri il nuovo file di classe Java.

    Puoi quindi aggiungere il tuo codice e scegliere Build> Esegui "YourClassName". Presto, il tuo codice è in esecuzione senza dispositivo Android!


  • In che modo questa risposta è diversa da quella di @idunnololz? Il tuo funziona con Gradle senza ulteriori passaggi?
    Katedral Pillon,

    0

    Funziona perfettamente se fai File> Apri ... e quindi seleziona il file pom.xml. Assicurati di modificare il menu a discesa nella parte superiore sinistra della barra laterale che dice "Android" in "Progetto" per vedere tutti i tuoi file. Inoltre penso che sia d'aiuto se la cartella del tuo file pom.xml si trova in una cartella chiamata "app /".

    Disclaimer: il mio progetto java è stato generato da Google App Engine.


    devi spostare le tue dipendenze sul pom o vedrà la roba di livello?
    Katedral Pillon,

    0

    Ho trascorso una giornata a trovare il modo più semplice per farlo. Lo scopo era quello di trovare il modo più veloce per raggiungere questo obiettivo. Non sono riuscito a farlo veloce come l'esecuzione del comando javac dal terminale o la compilazione da netbeans o il testo sublime 3. Ma ho ancora una buona velocità con Android Studio.

    Questo sembra ruff e tufo ma dal momento che non iniziamo progetti su base giornaliera, è per questo che sto bene a farlo.

    Ho scaricato la versione della community IntelliJ IDEA e ho creato un progetto java semplicemente. Ho aggiunto una classe principale e testato una corsa. Quindi ha semplicemente chiuso IntelliJ IDEA e aperto Android Studio e aperto lo stesso progetto lì. Quindi ho dovuto semplicemente collegare JDK dove IDE mi ha aiutato mostrando un elenco di JDK disponibili e ho selezionato 1.8 e poi compilato bene. Ora posso aprire qualsiasi file principale e premere Control + Shift + R per eseguire quel file principale.

    Quindi ho copiato tutti i miei file Java nella cartella src di Mac OS Finder. E sono in grado di compilare tutto ciò che voglio.

    Non c'è nulla correlato a Gradle o Android e la velocità di compilazione è abbastanza buona.

    Grazie amici


    0

    Per eseguire un file Java in Android, assicurati che la tua classe abbia il metodo principale. In Android Studio 3.5, fai clic con il pulsante destro del mouse all'interno del file e seleziona "Esegui 'Nomefile.main ()'" o fai clic su "Esegui" dal menu e seleziona "Esegui nome file" dal menu a discesa risultante.

    Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
    Licensed under cc by-sa 3.0 with attribution required.