Android Studio peut-il être utilisé pour exécuter des projets Java standard?


331

Pour les moments où vous souhaitez isoler Java et lui donner un test rapide ..

Pouvez-vous exécuter des projets Java non Android dans Android studio comme dans Eclipse?


2
Le studio Android est basé sur intelliJ. Alors bien sûr, il est sûrement capable d'exécuter du code java "standard". Mais pourquoi en avez-vous besoin?
Blackbelt

1
@vmironov Je suis d'accord avec vous.
Blackbelt

@vmironov C'est essentiellement ce qu'ils font. Les fonctionnalités Android sont un plugin IntelliJ, elles sont simplement regroupées pour Android Studio. Je n'ai pas utilisé Android Studio en particulier, mais j'utilise IntelliJ depuis un certain temps, et vous ne devriez avoir aucun problème à y exécuter des projets Java standard.
Kevin Coppock

4
@kcoppock, oui, mais ce plugin ne peut pas être ajouté à une IntelliJ IDEA "habituelle" (j'ai une version Ultimate achetée et je ne veux pas vraiment revenir à l'édition communautaire). La bonne nouvelle est que JetBrains a annoncé qu'il serait possible d'avoir les fonctionnalités d'Android Studio dans Intellij IDEA 13
Vladimir Mironov

1
Existe-t-il un moyen simple pour que cela fonctionne avec Gradle? Je continue de planter car il ne peut pas voir mes bibliothèques Gradle au moment de l'exécution.
Katedral Pillon

Réponses:


347

Testé sur Android Studio 0.8.6 - 3.5

En utilisant cette méthode, vous pouvez avoir des modules Java et des modules Android dans le même projet et également avoir la possibilité de compiler et d'exécuter des modules Java en tant que projets Java autonomes.

  1. Ouvrez votre projet Android dans Android Studio. Si vous n'en avez pas, créez-en un.
  2. Cliquez sur Fichier> Nouveau module . Sélectionnez Bibliothèque Java et cliquez sur Suivant .
  3. Saisissez le nom du package, etc., puis cliquez sur Terminer . Vous devriez maintenant voir un module Java dans votre projet Android.
  4. Ajoutez votre code au module Java que vous venez de créer.
  5. Cliquez sur le menu déroulant à gauche du bouton Exécuter. Cliquez sur Modifier les configurations ...
  6. Dans la nouvelle fenêtre, cliquez sur le signe plus en haut à gauche de la fenêtre et sélectionnez Application
  7. Une nouvelle configuration d'application devrait apparaître, entrez les détails tels que votre classe principale et le chemin de classe de votre module.
  8. Cliquez OK .

Maintenant, si vous cliquez sur exécuter, cela devrait compiler et exécuter votre module Java.

Si vous obtenez l'erreur Error: Could not find or load main class..., entrez à nouveau votre classe principale (comme vous l'avez fait à l'étape 7) même si le champ est déjà rempli. Cliquez sur Appliquer puis sur OK .

Mon cas d'utilisation: mon application Android repose sur certains fichiers précalculés pour fonctionner. Ces fichiers précalculés sont générés par du code Java. Étant donné que ces deux choses vont de pair, il est plus logique d'avoir ces deux modules dans le même projet.

NOUVEAU - Comment activer Kotlin dans votre projet autonome

Si vous souhaitez activer Kotlin dans votre projet autonome, procédez comme suit.

  1. En reprenant la dernière étape ci-dessus, ajoutez le code suivant au niveau de votre projet build.gradle(les lignes à ajouter sont désignées par >>> ):

    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. Ajoutez le code suivant au niveau de votre module build.gradle(les lignes à ajouter sont indiquées par >>> ):

    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. Étape bonus: Convertissez votre fonction principale en Kotlin! Changez simplement votre classe principale en:

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

2
Je peux confirmer que cela fonctionne dans Android Studio 0.8.14. J'ai utilisé un projet de base Hello World et ajouté une classe personnalisée contenant une méthode principale. J'ai supprimé le fichier MainActivity.java. À l'étape 2, je devais divulguer le volet Plus de modules (en bas à gauche de la fenêtre Créer un nouveau module) et faire défiler vers le bas pour trouver l'élément de bibliothèque Java. À l'étape 6, j'ai nommé mon application, sélectionné Personnalisé comme classe principale et application pour le chemin de classe du module. REMARQUE: Si vous supprimez le module d'application, conformément à la solution de @ simonp, votre application s'exécutera, mais avec des erreurs.
James Newton

Il devrait y avoir une autre étape après l'étape 2: ajouter du code à la classe, ou au moins en faire un code Hello-World: docs.oracle.com/javase/tutorial/getStarted/application
développeur Android

3
Mais comment puis-je exporter un projet de bureau dans un fichier .jar? Je ne trouve cette option nulle part: /
Chris

1
Fonctionne en 2.2.2! :)
Pavel Biryukov

1
a très bien fonctionné! J'ai utilisé Android Studio 3.1.4. Merci d'avoir partagé !
Birender Singh

27

EDIT: beaucoup de lune après que cette question a été posée, oui, maintenant apparemment vous pouvez.

Non, mais il est basé sur Intellij IDEA.

La version communautaire est téléchargeable gratuitement, mais elle ne prend pas en charge la plupart des éléments nécessitant une base de données externe ou un serveur d'applications. La ligne pour Java est à peu près que le code JavaSE peut utiliser avec plaisir la communauté.

Si vous le souhaitez (ou utilisez JavaEE), vous avez besoin de la version Ultimate, qui n'est pas gratuite, ou de l'EAP de la version suivante, généralement valable pendant un mois jusqu'à ce qu'ils en publient une autre.

Fondamentalement, cela fonctionne comme ça

Android Studio est simplement Android, le truc Android de la communauté IDEA 13 ...

... qui sera gratuit, et qui est tout de IDEA 13 Ultimate ...

... qui ne nécessite pas de base de données ou de serveur d'applications.

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

La communauté IDEA 12 n'a pas la possibilité d'importer le projet gradué et ce ne sera pas le cas, donc bien que vous puissiez faire du développement Android maintenant (je le fais), ne vous attendez pas à ce qu'il ait les mêmes fonctionnalités qu'Android Studio. Il y a beaucoup de bons nouveaux trucs Android dedans, ça va en 13.


3
Heureux d'aider! Personnellement, j'aime IDEA et je déteste Eclipse. C'est la première fois que je joue avec l'EAP car je vais clairement avoir besoin de compatibilité avec tout le monde migrant vers Android Studio.
JoeHz

Depuis AS 0.5.8, ce n'est plus correct. Vous pouvez certainement exécuter du code Java SE standard dans AS. Au moins, j'ai réussi à importer un projet Swing, à le développer et à le faire fonctionner. Malheureusement, vous ne pouvez pas créer un projet Java "normal" à ce jour, du moins pas à ma connaissance.
Code-Apprentice

3
Depuis la version 0.6.1, vous le pouvez. Voir ma réponse ci-dessous.
simonp

5
Veuillez supprimer / modifier cette réponse car elle n'est plus correcte. Android Studio peut désormais créer des modules Java et les exécuter dans le JRE local.
Navin

Il est donc préférable d'utiliser Android-Studio pour Android et IntelliJ pour Java et le reste? Qu'en est-il du support SWT sur IntelliJ? Connaissez-vous un bon concepteur d'interface utilisateur pour cela? J'en ai surtout besoin pour un aperçu de l'interface utilisateur.
développeur Android

18

Un moyen facile d'exécuter un programme java dans Android Studio serait,

1) Créer une classe Java par exemple "Test.java" dans Android Studio.

2) Écrivez votre code, par exemple, un Hello World programme à tester.

3) Faites un clic droit sur la classe Java et sélectionnez l'option "Exécuter 'Test.main ()'" ou appuyez sur Cntrl + Maj + F10.

Là, vous avez votre code Java en cours d'exécution ci-dessous.


1
Cela a fonctionné - merci! Dans mon cas, j'avais des problèmes avec le crash de la version Gradle, lors de la première tentative d'exécution. J'ai donc fait un Android Studio > File > Invalidate Caches / Restart, puis le problème a été résolu
Gene Bo

1
@Shruti Il faut un certain temps pour compiler la première fois après le passage de l'exécution de l'application à l'exécution de test.java. Savez-vous si l'exécutable qu'il crée est ajouté à la taille de l'APK?
Patrick

17

Avec Android Studio 0.6.1+ (et peut-être plus tôt), vous pouvez facilement développer des applications Java standard (non Android).

Cette méthode a été testée sur 0.8.2:

Commencez par créer une application Android Phone vanille, en utilisant Fichier> Nouveau projet. Ajoutez ensuite un module de bibliothèque Java pour contenir votre code d'application Java. (Choisissez «Bibliothèque Java» même si vous créez une application). Vous constaterez que vous pouvez créer et exécuter des applications Java avecmain() méthodes, des applications Swing, etc.

Vous souhaiterez supprimer le module "application" Android généré automatiquement, que vous n'utilisez pas. Allez dans Fichier -> Structure du projet et supprimez-le (sélectionnez le module "application" dans la case à gauche, puis cliquez sur l'icône "moins" au-dessus de la case). Maintenant, lorsque vous rouvrez Fichier -> Structure du projet -> Projet, vous verrez des options pour sélectionner le SDK du projet et le niveau de langue, ainsi qu'un tas d'autres options qui étaient auparavant masquées. Vous pouvez continuer et supprimer le module "app" du disque.

Dans 0.6.1, vous pourriez éviter de créer le module Android en premier lieu:

Allez dans Fichier> Nouveau projet. Remplissez le nom de votre application. Sur la page de sélection "facteurs de forme", où vous indiquez votre SDK Android minimum, décochez la case Mobile et continuez de créer votre projet.

Une fois le projet créé, allez dans Fichier -> Structure du projet -> Projet, et définissez votre JDK comme "SDK du projet". Ajoutez un module de bibliothèque Java pour contenir votre code d'application comme ci-dessus.


Où puis-je trouver la version alors? Si je clique sur Build-> Make Project ou Build-> Compile 'PureJava.java', le studio Android indique "Compilation terminée avec succès". Mais je ne trouve aucun fichier de construction. J'ai supprimé le module d'application ainsi que le dossier d'application.
AndiPower

1
Avez-vous pu déboguer ces projets?
MLProgrammer-CiM

@ MLProgrammer-CiM oui c'est possible. Il m'est arrivé que lors du débogage, l'IDE se bloque à un moment donné dans la phase de "mise à jour des indices", je ne sais pas ce qui en est la cause, j'ai essayé de nettoyer les caches et de redémarrer.
Shujito

14

Voici exactement à quoi ressemble la configuration.

entrez la description de l'image ici

Modifier les configurations> '+'> Application: entrez la description de l'image ici


HI Adam, puis-je savoir si cela fonctionne toujours? Et pourquoi aurions-nous besoin de gradle pour cette application? Le projet pourrait-il être nettoyé davantage afin que seuls les fichiers minimums soient présents?
Harsha

Bonjour @Harsha, j'ai implémenté cela comme une expérience en 2016. Je ne l'ai pas implémenté récemment car j'utilise IntelliJ autonome pour les applications Kotlin / Java backend. N'hésitez pas à mettre à jour les commentaires / publication avec vos résultats mis à jour.
Adam Hurwitz

5

J'ai trouvé une solution quelque peu hacky, ennuyeuse et pas complètement sûre qu'elle fonctionne toujours. Je voulais partager au cas où quelqu'un d'autre le trouverait utile.

Dans Android Studio, vous pouvez cliquer avec le bouton droit sur une classe avec une méthode principale et sélectionner "Exécuter .main ()". Cela créera une nouvelle configuration d'exécution pour YourClass, bien que cela ne fonctionnera pas tout à fait: il manquera certaines entrées de chemin de classe.

Afin de corriger les entrées de chemin de classe manquantes, allez dans la structure du projet et ajoutez manuellement l'emplacement du dossier de sortie pour votre module et toutes les autres dépendances de module dont vous avez besoin, comme ceci:

  • Fichier -> Structure du projet ...
  • Sélectionnez "Modules" dans le panneau Paramètres du projet sur le panneau de la colonne de gauche
  • Sélectionnez votre module dans la liste des modules dans le panneau de la colonne du milieu
  • Sélectionnez l'onglet "Dépendances" dans le panneau de la colonne de droite

Et puis pour le module où vous avez votre application Java ainsi que pour chacune des dépendances de module dont vous avez besoin: - Cliquez sur "+" -> "Jars ou répertoires" à l'extrême droite du panneau de la colonne de droite - Accédez à la sortie dossier du module (par exemple: mon_module / build / classes / main / java) et cliquez sur "OK" - Sur la nouvelle entrée de la liste Dépendances, à l'extrême droite, changez la case de sélection de "Compiler" en "Runtime"

Après cela, vous devriez pouvoir exécuter la configuration d'exécution que vous venez de créer pour exécuter la simple application Java.

Une chose à noter est que, pour ma configuration de projet Android Studio [très impliquée], je dois manuellement créer le projet avec gradle, en dehors d'Android Studio afin d'obtenir mes classes d'application Java simples à construire, avant de lancer l'application - je pense que c'est parce que la configuration d'exécution de type "Application" ne déclenche pas la génération Gradle correspondante.

Enfin, cela a été fait sur Android Studio 0.4.0.

J'espère que d'autres le trouveront utile. J'espère également que Google prendra bientôt en charge cette fonctionnalité.


1
I have to manually build the project with gradle, from outside Android StudioComment tu fais ça?
Katedral Pillon

3

J'ai installé la version de la communauté IntelliJ IDEA depuis http://www.jetbrains.com/idea/download/

J'ai essayé d'ouvrir mon projet que j'ai commencé dans le studio Android, mais il a échoué lors de la construction de Gradle. Au lieu de cela, j'ai ouvert à la fois Android Studio et Intellij et placé un écran à côté de l'autre et j'ai simplement glissé et déposé mes fichiers Java, maquettes XML, dessinables et manifesté dans la recherche de projet d'un nouveau projet démarré dans IntelliJ. Cela a fonctionné autour des problèmes de construction de Gradle et maintenant je peux démarrer un nouveau projet dans IntelliJ et concevoir une application Android ou une application Java de base. Heureusement, cela a fonctionné parce que je détestais avoir autant d'IDE sur mon PC.


3

J'ai pu le faire en suivant les étapes suivantes:

  1. Ouvrez Android Studio et sélectionnez «Importer un projet».
    Android Studio importe un projet

  2. Accédez à votre dossier de projet dans la fenêtre de navigation et sélectionnez-le.


0

Testé dans Android Studio 0.8.14:
J'ai pu obtenir un projet standard en cours d'exécution avec un minimum d'étapes de cette manière:

  • Dans un projet Android Studio ouvert, cliquez sur Fichier> Nouveau module.
  • Cliquez sur Plus de modules> Bibliothèque Java> Suivant, puis remplissez ce que vous préférez pour les noms.
  • Un nouveau module apparaîtra comme un dossier au même niveau que votre dossier "app" dans la structure du projet. Ouvrez-le et ouvrez le nouveau fichier de classe Java.

    Vous pouvez ensuite ajouter votre code et choisir Générer> Exécuter «YourClassName». Presto, votre code fonctionne sans appareil Android!


  • En quoi cette réponse est-elle différente de celle de @idunnololz? Le vôtre fonctionne-t-il avec gradle sans étapes supplémentaires?
    Katedral Pillon

    0

    Cela fonctionne parfaitement si vous faites Fichier> Ouvrir ... puis sélectionnez le fichier pom.xml. Assurez-vous de changer la liste déroulante en haut à gauche de la barre latérale qui dit "Android" en "Projet" pour voir tous vos fichiers. Je pense aussi que cela aide si le dossier de votre fichier pom.xml est dans un dossier appelé "app /".

    Avertissement: Mon projet java a été généré par Google App Engine.


    devez-vous déplacer vos dépendances vers le pom ou verra-t-il les trucs gradle?
    Katedral Pillon

    0

    J'ai passé une journée à trouver le moyen le plus simple de le faire. Le but était de trouver le moyen le plus rapide d'atteindre cet objectif. Je ne pouvais pas le faire aussi rapidement que d'exécuter la commande javac à partir du terminal ou de compiler à partir de netbeans ou de texte sublime 3. Mais j'ai toujours une bonne vitesse avec Android Studio.

    Cela ressemble à la manière et au tuf, mais comme nous n'initions pas de projets quotidiennement, c'est pourquoi je suis d'accord pour le faire.

    J'ai téléchargé la version de la communauté IntelliJ IDEA et créé un projet simplement java. J'ai ajouté une classe principale et testé une course. Ensuite, il suffit de fermer IntelliJ IDEA et d'ouvrir Android Studio et d'y ouvrir le même projet. Ensuite, j'ai dû simplement attacher JDK où IDE m'a aidé en montrant une liste des JDK disponibles et j'ai sélectionné 1.8, puis il s'est bien compilé. Je peux maintenant ouvrir n'importe quel fichier principal et appuyer sur Ctrl + Maj + R pour exécuter ce fichier principal.

    Ensuite, j'ai copié tous mes fichiers Java dans le dossier src par Mac OS Finder. Et je peux compiler tout ce que je veux.

    Il n'y a rien de lié à Gradle ou à Android et la vitesse de compilation est plutôt bonne.

    Merci mes amis


    0

    Pour exécuter un fichier java dans Android, assurez-vous que votre classe dispose de la méthode principale. Dans Android Studio 3.5, faites un clic droit à l'intérieur du fichier et sélectionnez "Exécuter 'Filename.main ()'" ou cliquez sur "Exécuter" dans le menu et sélectionnez "Exécuter le nom de fichier" dans le menu déroulant résultant.

    En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
    Licensed under cc by-sa 3.0 with attribution required.