¿Se puede usar Android Studio para ejecutar proyectos Java estándar?

331

Para aquellos momentos en los que desea aislar Java y darle una prueba rápida.

¿Se pueden ejecutar proyectos Java que no sean Android en Android Studio como en Eclipse?

mgibson
fuente
2
El estudio de Android se basa en intelliJ. Tan seguro, seguramente capaz de ejecutar código java "estándar". ¿Pero por qué lo necesitas?
Blackbelt
1
@vmironov Estoy de acuerdo contigo.
Blackbelt
@vmironov Eso es esencialmente lo que están haciendo. Las características de Android son un complemento IntelliJ, solo lo empaquetan para Android Studio. No he usado Android Studio en particular, pero he estado usando IntelliJ por un tiempo, y no debería tener problemas para ejecutar proyectos Java estándar dentro de él.
Kevin Coppock
44
@kcoppock, sí, pero este complemento no se puede agregar a una IDEA IntelliJ "habitual" (tengo una versión Ultimate comprada y realmente no quiero volver a la edición Community). La buena noticia es que JetBrains ha anunciado que será posible tener las funciones de Android Studio en Intellij IDEA 13
Vladimir Mironov
1
¿Hay alguna manera simple de hacer que esto funcione con Gradle? Sigo fallando porque no puede ver mis bibliotecas de gradle en tiempo de ejecución.
Katedral Pillon

Respuestas:

347

Probado en Android Studio 0.8.6 - 3.5

Con este método, puede tener módulos Java y módulos Android en el mismo proyecto y también puede compilar y ejecutar módulos Java como proyectos Java independientes.

  1. Abra su proyecto de Android en Android Studio. Si no tiene uno, cree uno.
  2. Haga clic en Archivo> Nuevo módulo . Seleccione Biblioteca de Java y haga clic en Siguiente .
  3. Complete el nombre del paquete, etc. y haga clic en Finalizar . Ahora debería ver un módulo Java dentro de su proyecto de Android.
  4. Agregue su código al módulo Java que acaba de crear.
  5. Haga clic en el menú desplegable a la izquierda del botón Ejecutar. Haga clic en Editar configuraciones ...
  6. En la nueva ventana, haga clic en el signo más en la parte superior izquierda de la ventana y seleccione Aplicación
  7. Debe aparecer una nueva configuración de la aplicación, ingrese los detalles como su clase principal y classpath de su módulo.
  8. Haz clic en Aceptar .

Ahora, si hace clic en ejecutar, esto debería compilar y ejecutar su módulo Java.

Si obtiene el error Error: Could not find or load main class..., simplemente ingrese su clase principal (como lo hizo en el paso 7) nuevamente, incluso si el campo ya está completado. Haga clic en Aplicar y luego haga clic en Aceptar .

Mi caso de uso: mi aplicación de Android se basa en algunos archivos precalculados para funcionar. Estos archivos precalculados son generados por algún código Java. Dado que estas dos cosas van de la mano, tiene más sentido tener ambos módulos en el mismo proyecto.

NUEVO - Cómo habilitar Kotlin en su proyecto independiente

Si desea habilitar Kotlin dentro de su proyecto independiente, haga lo siguiente.

  1. Continuando con el último paso anterior, agregue el siguiente código al nivel de su proyecto build.gradle(las líneas para agregar se denotan con >>> ):

    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. Agregue el siguiente código a su nivel de módulo build.gradle(las líneas para agregar se denotan con >>> ):

    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. Paso adicional: ¡Convierte tu función principal en Kotlin! Simplemente cambie su clase principal a:

    object Main {
        ...
        @JvmStatic
        fun main(args: Array<String>) {
            // do something
        }
        ...
    }
    
idunnololz
fuente
2
Puedo confirmar que esto funciona en Android Studio 0.8.14. Utilicé un proyecto básico de Hello World y agregué una clase personalizada que contenía un método principal. Eliminé el archivo MainActivity.java. En el paso 2, necesitaba revelar el panel Más módulos (parte inferior izquierda de la ventana Crear nuevo módulo) y desplazarme hacia abajo para encontrar el elemento de la Biblioteca Java. En el paso 6, nombré mi aplicación, seleccioné Personalizado como mi clase principal y aplicación para el classpath del módulo. NOTA: Si elimina el módulo de la aplicación, según la solución de @ simonp, su aplicación se ejecutará, pero con errores.
James Newton
Debería haber otro paso después del paso 2: agregue código a la clase, o al menos conviértalo en un
desarrollador de Android
3
Pero, ¿cómo puedo exportar un proyecto de escritorio a un archivo .jar? No puedo encontrar esa opción en ningún lado: /
Chris
1
Funciona en 2.2.2! :)
Pavel Biryukov
1
funcionó genial! Usé Android Studio 3.1.4. Gracias por compartir !
Birender Singh
27

EDITAR: mucha luna después de esta pregunta, sí, ahora aparentemente puedes.

No, pero se basa en Intellij IDEA.

La versión comunitaria de eso es gratuita para descargar, pero no admite la mayoría de las cosas que requieren una base de datos externa o un servidor de aplicaciones. La línea para Java es más o menos que el código JavaSE puede usar Community con gusto.

Si desea eso (o está utilizando JavaEE), entonces necesita la versión Ultimate, que no es gratuita, o el EAP de la próxima versión, que generalmente es bueno durante un mes hasta que lancen otra.

Basicamente funciona de esta manera

Android Studio es solo Android the Android Stuff de IDEA 13 Community ...

... que será gratis, y es cualquier cosa de IDEA 13 Ultimate ...

... eso no requiere una base de datos o un servidor de aplicaciones.

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

IDEA 12 Community no tiene la capacidad de importar el proyecto graduado y no lo hará, por lo que si bien puede hacer el desarrollo de Android ahora (lo hago), no espere que tenga las mismas características que Android Studio. Hay muchas cosas nuevas y buenas de Android, eso va a 13.

JoeHz
fuente
3
¡Feliz de ayudar! Personalmente me encanta IDEA y odio Eclipse. Esta es la primera vez que voy a jugar con el EAP porque claramente necesitaré compatibilidad con todos los que migren a Android Studio.
JoeHz
A partir de AS 0.5.8, esto ya no es correcto. Definitivamente puede ejecutar código estándar Java SE en AS. Al menos tengo éxito importando un proyecto Swing, desarrollándolo y ejecutándolo. Desafortunadamente, no puede crear un proyecto Java "regular" a partir de este escrito, al menos no que yo sepa.
Code-Apprentice
3
A partir de 0.6.1 puedes. Vea mi respuesta a continuación.
simonp
55
Elimine / edite esta respuesta ya que ya no es correcta. Android Studio ahora puede construir módulos Java y ejecutarlos en el JRE local.
Navin
Entonces, ¿es mejor usar Android-Studio para Android, e IntelliJ para Java y el resto? ¿Qué pasa con el soporte SWT en IntelliJ? ¿Conoces un buen diseñador de interfaz de usuario para ello? Lo necesito principalmente para la vista previa de la interfaz de usuario.
Desarrollador de Android
18

Sería una manera fácil de ejecutar un programa Java en Android Studio,

1) Crear una clase de Java decir "Test.java"en Android Studio.

2) Escriba su código, por ejemplo, un Hello Worldprograma para probar.

3) Haga clic derecho en la clase Java y seleccione la opción "Ejecutar 'Test.main ()'" o presione Cntrl + Shift + F10.

Ahí tienes tu código Java ejecutándose a continuación.

Shruti Dasgopal
fuente
1
Esto funcionó, ¡gracias! En mi caso, tuve problemas con el bloqueo de la construcción de gradle, cuando intenté ejecutar esto por primera vez. Así que hice una Android Studio > File > Invalidate Caches / Restarty luego el problema se resolvió
Gene Bo
1
@Shruti Lleva un tiempo compilar la primera vez después de pasar de ejecutar la aplicación a ejecutar test.java. ¿Sabes si el ejecutable que está creando se agrega al tamaño del APK?
Patrick
17

Con Android Studio 0.6.1+ (y posiblemente antes) puede desarrollar fácilmente aplicaciones estándar Java (que no sean Android).

Este método ha sido probado en 0.8.2:

Comience creando una aplicación de teléfono Android de vainilla, usando Archivo> Nuevo proyecto. Luego agregue un módulo de la Biblioteca Java para guardar el código de su Aplicación Java. (Elija 'Biblioteca Java' incluso si está creando una aplicación). Descubrirá que puede crear y ejecutar aplicaciones Java con main()métodos, aplicaciones Swing, etc.

Deberá eliminar el módulo de "aplicación" de Android generado automáticamente, que no está utilizando. Vaya a Archivo -> Estructura del proyecto y elimínelo (seleccione el módulo "aplicación" en el cuadro de la izquierda y haga clic en el icono 'menos' que se encuentra sobre el cuadro). Ahora, cuando vuelva a abrir Archivo -> Estructura del proyecto -> Proyecto, verá opciones para seleccionar el SDK del proyecto y el nivel de idioma, además de un montón de otras opciones que anteriormente estaban ocultas. Puede continuar y eliminar el módulo "aplicación" del disco.

En 0.6.1 podría evitar crear el módulo de Android en primer lugar:

Vaya a Archivo> Nuevo proyecto. Complete el nombre de su solicitud. En la página de selección de "factores de forma", donde establece su SDK de Android mínimo, deseleccione la casilla de verificación Móvil y continúe con la creación de su proyecto.

Una vez creado el proyecto, vaya a Archivo -> Estructura del proyecto -> Proyecto, y configure su JDK como el "SDK del proyecto". Agregue un módulo de la Biblioteca Java para guardar el código de su aplicación como se indicó anteriormente.

simonp
fuente
¿Dónde puedo encontrar la compilación entonces? Si hago clic en Build-> Make Project o Build-> Compile, el estudio de Android 'PureJava.java' dice "La compilación se completó con éxito". Pero no puedo encontrar ningún archivo de compilación. Eliminé el módulo de la aplicación y la carpeta de la aplicación.
AndiPower
1
¿Has podido depurar esos proyectos?
MLProgrammer-CiM
@ MLProgrammer-CiM sí, es posible. Me ha sucedido que al depurar, el IDE se detiene en algún momento de la fase de "actualización de índices", no sé qué lo está causando, he intentado limpiar cachés y reiniciar.
Shujito
14

Esto es exactamente cómo se ve la configuración.

ingrese la descripción de la imagen aquí

Editar configuraciones> '+'> Aplicación: ingrese la descripción de la imagen aquí

Adam Hurwitz
fuente
Hola Adam, ¿puedo saber si aún funciona? ¿Y por qué necesitaríamos gradle para esta aplicación? ¿Podría limpiarse más el proyecto para que solo estén presentes los archivos mínimos mínimos?
Harsha
Hola @Harsha, implementé esto como un experimento en 2016. No lo he implementado recientemente, ya que uso IntelliJ independiente para aplicaciones de back-end Kotlin / Java. Siéntase libre de actualizar los comentarios / publicaciones con sus hallazgos actualizados.
Adam Hurwitz
5

Encontré una solución algo hacky, molesta y no completamente segura de que siempre funciona para esto. Quería compartir en caso de que alguien más lo encuentre útil.

En Android Studio, puede hacer clic con el botón derecho en una clase con un método principal y seleccionar "Ejecutar .main ()". Esto creará una nueva configuración de ejecución para YourClass, aunque no funcionará del todo: faltarán algunas entradas de classpath.

Para corregir las entradas de classpath que faltan, vaya a la Estructura del proyecto y agregue manualmente la ubicación de la carpeta de salida para su módulo y cualquier otra dependencia de módulo que necesite, de esta manera:

  • Archivo -> Estructura del proyecto ...
  • Seleccione "Módulos" en el panel Configuración del proyecto en el panel de la columna izquierda
  • Seleccione su módulo en la lista de módulos en el panel de la columna central
  • Seleccione la pestaña "Dependencias" en el panel de la columna derecha

Y luego, para el módulo donde tiene su aplicación Java, así como para cada una de las dependencias del módulo que necesita: - Haga clic en "+" -> "Frascos o directorios" en el extremo derecho del panel de la columna derecha - Navegue a la salida carpeta del módulo (por ejemplo: my_module / build / classes / main / java) y haga clic en "Aceptar" - En la nueva entrada a la lista Dependencias, en el extremo derecho, cambie el cuadro de selección de "Compilar" a "Tiempo de ejecución"

Después de esto, debería poder ejecutar la configuración Ejecutar que acaba de crear para ejecutar la aplicación Java simple.

Una cosa a tener en cuenta es que, para mi configuración particular [bastante complicada] del proyecto de Android Studio, tengo que construir manualmente el proyecto con gradle, desde fuera de Android Studio para poder construir mis clases simples de aplicaciones Java, antes de ejecutar la aplicación: creo que esto se debe a que la configuración Ejecutar del tipo "Aplicación" no está activando la compilación de Gradle correspondiente.

Finalmente, esto se hizo en Android Studio 0.4.0.

Espero que otros lo encuentren útil. También espero que Google pronto admita esta funcionalidad.

Julian Cerruti
fuente
1
I have to manually build the project with gradle, from outside Android Studio¿Cómo haces eso?
Katedral Pillon
3

Instalé la versión de la comunidad IntelliJ IDEA desde http://www.jetbrains.com/idea/download/

Intenté abrir mi proyecto que comencé en el estudio de Android, pero falló cuando estaba en Gradle Build. En su lugar, abrí Android Studio e Intellij al mismo tiempo, coloqué una pantalla junto a la otra y simplemente arrastré y solté mis archivos java, diseños xml, dibujables y me manifesté en la jerarquía de proyectos de un nuevo proyecto iniciado en IntelliJ. Funcionó en torno a los problemas de construcción de Gradle y ahora puedo comenzar un nuevo proyecto en IntelliJ y diseñar una aplicación de Android o una aplicación Java básica. Afortunadamente esto funcionó porque odiaba tener tantos IDEs en mi PC.

cjayem13
fuente
3

Lo he podido hacer siguiendo los siguientes pasos:

  1. Abra Android Studio y seleccione 'Importar proyecto'.
    Android Studio importa un proyecto

  2. Busque la carpeta de su proyecto en la ventana de exploración y selecciónela.

Loveleen Saini
fuente
0

Probado en Android Studio 0.8.14:
pude ejecutar un proyecto estándar con pasos mínimos de esta manera:

  • En un proyecto abierto de Android Studio, haga clic en Archivo> Nuevo módulo.
  • Haga clic en Más módulos> Biblioteca Java> Siguiente, luego complete lo que prefiera para los nombres.
  • Aparecerá un nuevo módulo como una carpeta en el mismo nivel que la carpeta de su "aplicación" en la Estructura del proyecto. Ábralo y abra el nuevo archivo de clase Java.

    Luego puede agregar su código y elegir Construir> Ejecutar 'YourClassName'. ¡Presto, su código se está ejecutando sin dispositivo Android!

  • Juan
    fuente
    ¿Cómo es esta respuesta diferente de la de @idunnololz? ¿El tuyo funciona con gradle sin ningún paso adicional?
    Katedral Pillon
    0

    Funciona perfecto si haces Archivo> Abrir ... y luego seleccionas el archivo pom.xml. Asegúrese de cambiar el menú desplegable en la parte superior izquierda de la barra lateral que dice "Android" a "Proyecto" para ver todos sus archivos. También creo que ayuda si la carpeta de su archivo pom.xml está en una carpeta llamada "aplicación /".

    Descargo de responsabilidad: mi proyecto java fue generado por Google App Engine.

    Jacob Ferrero
    fuente
    ¿tienes que mover tus dependencias al pom o verá las cosas de gradle?
    Katedral Pillon
    0

    Pasé un día buscando la forma más fácil de hacer esto. El objetivo era encontrar la forma más rápida de lograr este objetivo. No pude hacerlo tan rápido como ejecutar el comando javac desde la terminal o compilar desde netbeans o sublime text 3. Pero aún así obtuve una buena velocidad con Android Studio.

    Esto se ve ruff y tuff pero como no iniciamos proyectos a diario, es por eso que estoy bien para hacer esto.

    Descargué la versión de comunidad IntelliJ IDEA y creé un proyecto simplemente java. Agregué una clase principal y probé una carrera. Luego simplemente cerró IntelliJ IDEA y abrió Android Studio y abrió el mismo proyecto allí. Luego tuve que simplemente adjuntar JDK donde IDE me ayudó mostrando una lista de JDK disponibles y seleccioné 1.8 y luego se compiló bien. Ahora puedo abrir cualquier archivo principal y presionar Control + Shift + R para ejecutar ese archivo principal.

    Luego copié todos mis archivos Java en la carpeta src de Mac OS Finder. Y puedo compilar todo lo que quiera.

    No hay nada relacionado con Gradle o Android y la velocidad de compilación es bastante buena.

    Gracias amigos

    Asif Ashraf
    fuente
    0

    Para ejecutar un archivo Java en Android, asegúrese de que su clase tenga el método principal. En Android Studio 3.5, simplemente haga clic derecho dentro del archivo y seleccione "Ejecutar 'Filename.main ()'" o haga clic en "Ejecutar" en el menú y seleccione "Ejecutar Filename" en el menú desplegable resultante.

    Alabi
    fuente