Можно ли использовать Android Studio для запуска стандартных проектов Java?


331

Для тех случаев, когда вы хотите изолировать Java и быстро его протестировать.

Можете ли вы запускать не Android-проекты Java в Android-студии, как в Eclipse?


2
Android-студия основана на IntelliJ. Конечно, он способен запускать «стандартный» код Java. Но зачем тебе это?
Blackbelt

1
@vmironov Я согласен с тобой.
Blackbelt

@vmironov Это по сути то, что они делают. Функции Android - это плагин IntelliJ, они просто упаковывают его вместе для Android Studio. В частности, я не использовал Android Studio, но некоторое время пользуюсь IntelliJ, и у вас не должно возникнуть проблем при запуске стандартных Java-проектов внутри него.
Кевин Коппок

4
@kcoppock, да, но этот плагин не может быть добавлен к "обычной" IntelliJ IDEA (у меня есть купленная версия Ultimate, и я не хочу переключаться обратно на версию Community). Хорошая новость заключается в том, что JetBrains объявила о том, что в Intellij IDEA 13 будут доступны функции Android Studio
Владимир Миронов

1
Есть ли простой способ заставить его работать с Gradle? Я продолжаю падать, потому что он не видит мои библиотеки gradle во время выполнения.
Катедраль Пиллон

Ответы:


347

Проверено на Android Studio 0.8.6 - 3.5

Используя этот метод, вы можете иметь модули Java и модули Android в одном проекте, а также иметь возможность компилировать и запускать модули Java как отдельные проекты Java.

  1. Откройте свой проект Android в Android Studio. Если у вас его нет, создайте его.
  2. Нажмите Файл> Новый модуль . Выберите библиотеку Java и нажмите « Далее» .
  3. Введите имя пакета и т. Д. И нажмите Готово . Теперь вы должны увидеть модуль Java внутри вашего проекта Android.
  4. Добавьте свой код в модуль Java, который вы только что создали.
  5. Нажмите на выпадающий слева от кнопки запуска. Нажмите Редактировать конфигурации ...
  6. В новом окне нажмите на знак плюс в левом верхнем углу окна и выберите Приложение
  7. Должна появиться новая конфигурация приложения, введите такие данные, как ваш основной класс и путь к классу вашего модуля.
  8. Нажмите ОК .

Теперь, если вы нажмете Run, это должно скомпилировать и запустить ваш модуль Java.

Если вы получили сообщение об ошибке Error: Could not find or load main class..., просто введите ваш основной класс (как вы это сделали на шаге 7) еще раз, даже если поле уже заполнено. Нажмите Применить, а затем нажмите ОК .

Мой пример использования: мое Android-приложение для работы использует некоторые предварительно вычисленные файлы. Эти предварительно вычисленные файлы генерируются неким Java-кодом. Поскольку эти две вещи идут рука об руку, наиболее разумно иметь оба этих модуля в одном проекте.

НОВОЕ - Как включить Kotlin в вашем автономном проекте

Если вы хотите включить Kotlin в вашем автономном проекте, сделайте следующее.

  1. Продолжая с последнего шага выше, добавьте следующий код на уровень вашего проекта build.gradle(строки для добавления обозначены >>> ):

    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. Добавьте следующий код на уровень вашего модуля build.gradle(строки для добавления обозначены >>> ):

    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. Бонусный шаг: превратите свою основную функцию в Kotlin! Просто измените свой основной класс на:

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

2
Я могу подтвердить это работает в Android Studio 0.8.14. Я использовал базовый проект Hello World и добавил класс Custom, содержащий метод main. Я удалил файл MainActivity.java. На шаге 2 мне нужно было открыть панель «Больше модулей» (внизу слева от окна «Создать новый модуль») и прокрутить вниз, чтобы найти элемент библиотеки Java. На шаге 6 я назвал свое приложение, выбрал Custom в качестве основного класса и app для пути к классам модуля. ПРИМЕЧАНИЕ. Если вы удалите модуль приложения в соответствии с решением @ simonp, ваше приложение будет работать, но с ошибками.
Джеймс Ньютон

После шага 2 должен быть еще один шаг: добавить код в класс или, по крайней мере, сделать его кодом Hello-World: docs.oracle.com/javase/tutorial/getStarted/application
разработчик для Android

3
Но как я могу экспортировать проект рабочего стола в файл .jar? Я нигде не могу найти этот вариант: /
Крис

1
Работает в 2.2.2! :)
Павел Бирюков

1
работал отлично! Я использовал Android Studio 3.1.4. Спасибо, что поделился !
Birender Singh

27

РЕДАКТИРОВАТЬ: многие луна после того, как этот вопрос был задан, да, теперь, видимо, вы можете.

Нет, но он основан на Intellij IDEA.

Общественная версия бесплатна для скачивания, но не поддерживает большинство вещей, требующих внешней базы данных или сервера приложений. Линия для Java в значительной степени такова, что код JavaSE может с удовольствием использовать Community.

Если вы хотите этого (или используете JavaEE), то вам нужна либо версия Ultimate, которая не является бесплатной, либо EAP следующей версии, которая обычно работает в течение месяца, пока не выйдет другая.

В основном это работает так

Android Studio - это просто Android Android Stuff от сообщества IDEA 13 ...

... который будет бесплатным, и что угодно из IDEA 13 Ultimate ...

... это не требует базы данных или сервера приложений.

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

Сообщество IDEA 12 не имеет возможности импортировать gradilized проект, и не будет, поэтому, хотя вы можете заняться разработкой для Android сейчас (я так понимаю), не ожидайте, что он будет иметь те же функции, что и Android Studio. В нем много хороших новых вещей для Android, в том числе 13.


3
Рад был помочь! Я лично люблю ИДЕЮ и ненавижу Eclipse. Это первый раз, когда я начал играть с EAP, потому что мне явно нужна совместимость со всеми, кто переходит на Android Studio.
JoeHz

Начиная с AS 0.5.8, это больше не правильно. Вы можете определенно запустить стандартный код Java SE в AS. По крайней мере, мне удалось импортировать проект Swing, разработать и запустить его. К сожалению, вы не можете создать «обычный» Java-проект на момент написания этой статьи, по крайней мере, не так, как я знаю.
Код-ученик

3
По состоянию на 0.6.1 вы можете. Смотрите мой ответ ниже.
simonp

5
Пожалуйста, удалите / отредактируйте этот ответ, так как он больше не является правильным. Android Studio теперь может создавать модули Java и запускать их в локальной JRE.
Навин

Так что лучше использовать Android-Studio для Android, а IntelliJ для Java и все остальное? Как насчет поддержки SWT на IntelliJ? Вы знаете хорошего дизайнера интерфейса для этого? Мне это нужно в основном для предварительного просмотра пользовательского интерфейса.
Android-разработчик

18

Простой способ запустить Java-программу в Android Studio:

1) Создайте класс Java, скажем, "Test.java"в Android Studio.

2) Напишите свой код, например, Hello Worldпрограмму для тестирования.

3) Щелкните правой кнопкой мыши по классу Java и выберите параметр «Запустить« Test.main () »» или нажмите Cntrl + Shift + F10.

Там у вас есть ваш Java-код, работающий ниже.


1
Это сработало - спасибо! В моем случае у меня были проблемы со сбоем сборки gradle, когда я впервые пытался это запустить. Так что я сделал, Android Studio > File > Invalidate Caches / Restartи тогда проблема была решена
Джин Бо

1
@Shruti Первая компиляция занимает некоторое время после перехода от запуска приложения к запуску test.java. Знаете ли вы, если создаваемый файл добавляется к размеру APK вообще?
Патрик

17

С Android Studio 0.6.1+ (и, возможно, ранее) вы можете легко разрабатывать стандартные приложения Java (не Android).

Этот метод был протестирован на 0.8.2:

Начните с создания приложения Android Phone ванили, используя Файл> Новый проект. Затем добавьте модуль библиотеки Java для хранения кода приложения Java. (Выберите «Библиотека Java», даже если вы создаете приложение). Вы найдете, что можете создавать и запускать приложения Java с помощью main()методов, приложений Swing и т. Д.

Вы захотите удалить автоматически созданный Android-модуль «приложение», который вы не используете. Перейдите в Файл -> Структура проекта и удалите его (выберите модуль «приложение» в поле слева и нажмите значок «минус» над полем). Теперь, когда вы снова откроете Файл -> Структура проекта -> Проект, вы увидите опции для выбора SDK проекта и уровня языка, а также кучу других опций, которые ранее были скрыты. Вы можете удалить модуль «app» с диска.

В 0.6.1 вы могли бы избежать создания модуля Android в первую очередь:

Перейдите в Файл> Новый проект. Заполните ваше имя приложения. На странице выбора «форм-факторы», где вы указываете минимальный Android SDK, снимите флажок «Мобильный» и приступите к созданию проекта.

После создания проекта перейдите в «Файл» -> «Структура проекта» -> «Проект» и установите свой JDK в качестве «Project SDK». Добавьте модуль библиотеки Java для хранения кода приложения, как указано выше.


Где тогда найти сборку? Если я нажму Build-> Make Project или Build-> Compile 'PureJava.java', андроид-студия скажет: «Компиляция завершена успешно». Но я не могу найти какие-либо файлы сборки. Я удалил модуль приложения, а также папку приложения.
AndiPower

1
Вам удалось отладить эти проекты?
MLProgrammer-CiM

@ MLProgrammer-CiM да, это возможно. Со мной случилось так, что при отладке IDE в какой-то момент в фазе «обновления индексов» зависает, я не знаю, что его вызывает, я пытался очистить кеш и перезапустить.
Shujito

14

Вот как выглядит установка.

введите описание изображения здесь

Изменить настройки> '+'> Приложение: введите описание изображения здесь


Привет, Адам, могу я узнать, все ли еще работает? И зачем нам нужен gradle для этого приложения? Может ли проект быть дополнительно очищен, чтобы присутствовали только минимальные файлы?
Харша

Привет @Harsha, я реализовал это в качестве эксперимента в 2016 году. Я не реализовал это в последнее время, так как я использую автономный IntelliJ для серверных приложений Kotlin / Java. Не стесняйтесь обновлять комментарии / пост с вашими обновленными результатами.
Адам Гурвиц

5

Я нашел несколько хакерское, раздражающее и не совсем уверенное в этом решение. Я хотел бы поделиться, если кто-то еще считает это полезным.

В Android Studio вы можете щелкнуть правой кнопкой мыши класс с помощью метода main и выбрать «Run .main ()». Это создаст новую конфигурацию Run для YourClass, хотя это не совсем работает: в нем будут отсутствовать некоторые записи пути к классам.

Чтобы исправить отсутствующие записи пути к классам, перейдите в структуру проекта и вручную добавьте расположение выходной папки для вашего модуля и любые другие зависимости от модулей, которые вам нужны, например, так:

  • Файл -> Структура проекта ...
  • Выберите «Модули» на панели «Параметры проекта» на панели левой колонки.
  • Выберите свой модуль в списке модулей на панели средней колонки
  • Выберите вкладку «Зависимости» на панели правой колонки

И затем для модуля, в котором у вас есть Java-приложение, а также для каждой из зависимостей модуля, которые вам нужны: - Нажмите «+» -> «Банки или каталоги» в правом нижнем углу панели правой колонки - Перейдите к выводу в папке модуля (например, my_module / build / classes / main / java) и нажмите «OK» - в новой записи в списке зависимостей в правом углу измените поле выбора с «Compile» на «Runtime»

После этого вы сможете выполнить только что созданную конфигурацию Run для запуска простого Java-приложения.

Следует отметить, что для моей конкретной [довольно сложной] настройки проекта Android Studio мне нужно вручную собрать проект с помощью gradle из-за пределов Android Studio, чтобы заставить мои простые классы Java-приложений быть построенными, прежде чем я запустите приложение - я думаю, это потому, что конфигурация Run типа «Приложение» не запускает соответствующую сборку Gradle.

Наконец, это было сделано на Android Studio 0.4.0.

Я надеюсь, что другие найдут это полезным. Я также надеюсь, что Google скоро поддержит эту функцию.


1
I have to manually build the project with gradle, from outside Android StudioКак ты это делаешь?
Катедраль Пиллон

3

Я установил версию сообщества IntelliJ IDEA из http://www.jetbrains.com/idea/download/

Я попытался открыть свой проект, который я запустил в Android-студии, но он не получился при сборке Gradle. Вместо этого я одновременно открыл android studio и intellij, поместил один экран рядом с другим и просто перетащил свои java-файлы, макеты xml, drawables и манифест в проект нового проекта, начатого в IntelliJ. Это помогло решить проблемы сборки сборки, и теперь я могу начать новый проект в IntelliJ и разработать либо приложение для Android, либо базовое приложение Java. К счастью, это сработало, потому что я терпеть не мог иметь столько IDE на моем компьютере.


3

Я смог сделать это, используя следующие шаги:

  1. Откройте Android Studio и выберите «Импортировать проект».
    Android Studio импортирует проект

  2. Перейдите к папке вашего проекта в окне обзора и выберите ее.


0

Протестировано в Android Studio 0.8.14:
мне удалось запустить стандартный проект с минимальными шагами следующим образом:

  • В открытом проекте Android Studio выберите Файл> Новый модуль.
  • Нажмите More Modules> Java Library> Next, затем заполните все, что вы предпочитаете для имен.
  • Новый модуль появится в виде папки на том же уровне, что и папка «app» в структуре проекта. Откройте его и откройте новый файл классов Java.

    Затем вы можете добавить свой код и выбрать «Сборка»> «Выполнить« YourClassName ». Presto, ваш код работает без устройства Android!


  • Чем этот ответ отличается от ответа @idunnololz? Ваш работает с Gradle без каких-либо дополнительных шагов?
    Катедраль Пиллон

    0

    Он отлично работает, если вы выполните File> Open ... и затем выберите файл pom.xml. Обязательно измените раскрывающийся список в верхнем левом углу боковой панели с надписью «Android» на «Project», чтобы увидеть все ваши файлы. Также я думаю, что это помогает, если папка вашего файла pom.xml находится в папке с именем "app /".

    Отказ от ответственности: Мой проект Java был создан Google App Engine.


    Вы должны переместить свои зависимости в pom, или он будет видеть вещи gradle?
    Катедраль Пиллон

    0

    Потратил день, чтобы найти самый простой способ сделать это. Цель состояла в том, чтобы найти самый быстрый способ достижения этой цели. Я не мог сделать это так быстро, как запуск команды javac из терминала или компиляция из netbeans или возвышенного текста 3. Но все равно получил хорошую скорость с Android Studio.

    Это выглядит грубо и непристойно, но поскольку мы не инициируем проекты на ежедневной основе, поэтому я вполне могу это сделать.

    Я скачал версию сообщества IntelliJ IDEA и создал просто проект Java. Я добавил основной класс и проверил пробежку. Затем просто закрыл IntelliJ IDEA, открыл Android Studio и открыл там тот же проект. Затем мне пришлось просто присоединить JDK, где IDE помогла мне, показав список доступных JDK, и я выбрал 1.8, а затем он хорошо скомпилирован. Теперь я могу открыть любой основной файл и нажать Control + Shift + R, чтобы запустить этот основной файл.

    Затем я скопировал все мои файлы Java в папку src с помощью Mac OS Finder. И я могу собрать все, что захочу.

    Нет ничего общего с Gradle или Android, и скорость компиляции довольно хорошая.

    Спасибо друзья


    0

    Чтобы запустить Java-файл в Android, убедитесь, что у вашего класса есть метод main. В Android Studio 3.5 просто щелкните правой кнопкой мыши внутри файла и выберите «Run 'Filename.main ()» или нажмите «Run» в меню и выберите «Run Filename» в появившемся раскрывающемся меню.

    Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
    Licensed under cc by-sa 3.0 with attribution required.