可以使用Android Studio运行标准Java项目吗?


330

对于那些想要隔离Java并对其进行快速测试的时代。

您可以像Eclipse一样在Android Studio中运行非Android Java项目吗?


2
Android studio基于intelliJ。因此可以肯定,它肯定可以运行“标准” java代码。但是,为什么需要它呢?
Blackbelt,

1
@vmironov我同意你的看法。
Blackbelt,

@vmironov本质上就是他们在做什么。Android功能是IntelliJ插件,它们只是将其打包在一起用于Android Studio。我没有特别使用Android Studio,但是已经有一段时间使用IntelliJ了,在其中运行标准Java项目应该没有问题。
凯文·科波克

4
@kcoppock,是的,但是不能将此插件添加到“常规” IntelliJ IDEA中(我已经购买了Ultimate版本,并且我真的不想切换回Community Edition)。好消息是,JetBrains宣布有可能在Intellij IDEA 13中拥有Android Studio的功能
Vladimir Mironov

1
有没有简单的方法可以使它与Gradle一起使用?我一直崩溃,因为它在运行时看不到我的gradle库。
Katedral Pillon

Answers:


346

在Android Studio 0.8.6-3.5上测试

使用此方法,您可以在同一项目中拥有Java模块和Android模块,还可以像独立的Java项目一样编译和运行Java模块。

  1. 在Android Studio中打开您的Android项目。如果您没有,请创建一个。
  2. 单击文件>新建模块。选择Java库,然后单击下一步
  3. 填写软件包名称,等等,然后单击完成。现在,您应该在Android项目中看到一个Java模块。
  4. 将代码添加到刚创建的Java模块中。
  5. 单击运行按钮左侧的下拉菜单。单击编辑配置...
  6. 在新窗口中,单击窗口左上方的加号,然后选择“ 应用程序”
  7. 应出现一个新的应用程序配置,输入详细信息,例如您的主类和模块的类路径。
  8. 单击确定

现在,如果您单击运行,这将编译并运行您的Java模块。

如果出现错误Error: Could not find or load main class...,即使该字段已经填写,也只需再次输入您的主类(如在步骤7中所做的那样)即可。单击Apply,然后单击Ok

我的使用案例:我的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类。我删除了MainActivity.java文件。在第2步中,我需要公开“更多模块”窗格(“创建新模块”窗口的左下方),然后向下滚动以找到“ Java库”项。在第6步中,我为应用程序命名,选择Custom作为我的主类,并选择app作为模块的类路径。注意:如果按照@simonp的解决方案删除应用程序模块,则您的应用程序将运行,但会出现错误。
詹姆斯·牛顿

第2步之后应该再有一个步骤:向类中添加代码,或者至少使其成为Hello-World代码:docs.oracle.com/javase/tutorial/getStarted/application
android开发者

3
但是,如何将桌面项目导出到.jar文件?我在任何地方都找不到该选项:/
克里斯(Chris)

1
在2.2.2中工作!:)
Pavel Biryukov

1
很棒!我使用的是Android Studio 3.1.4。感谢分享 !
Birender Singh '18

27

编辑:这个问题问了很多月之后,是的,现在显然可以了。

否,但是它基于Intellij IDEA。

该社区版本可免费下载,但不支持大多数需要外部数据库或应用程序服务器的内容。Java的代码行几乎等于JavaSE代码可以愉快地使用Community。

如果需要(或正在使用JavaEE),则需要非免费的Ultimate版本,或者需要一个月的下一个版本EAP(通常需要一个月才能使用),直到他们发布另一个版本为止。

基本上是这样的

Android Studio只是Android,是IDEA 13社区的Android Stuff。

...将是免费的,并且是IDEA 13 Ultimate的任何内容...

...不需要数据库或应用服务器。

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

IDEA 12社区不具有导入已分级项目的功能,因此无法导入,因此尽管您现在可以在其中进行Android开发(我知道),但是不要期望它具有与Android Studio相同的功能。里面有很多不错的Android新东西,即将推出13个。


3
乐意效劳!我个人很喜欢IDEA,讨厌Eclipse。这是我第一次使用EAP,因为我显然需要与迁移到Android Studio的每个人兼容。
JoeHz

从AS 0.5.8开始,这不再正确。您绝对可以在AS中运行标准Java SE代码。至少我成功导入了一个Swing项目,并进行了开发和运行。不幸的是,在撰写本文时,您不能创建“常规” Java项目,至少我不知道。
代码学徒

3
从0.6.1开始,您可以。请参阅下面的答案。
simonp 2014年

5
请删除/编辑此答案,因为它不再正确。Android Studio现在可以构建Java模块并在本地JRE中运行它们。
纳文2015年

因此,最好将Android-Studio用于android设备,将IntelliJ用于Java和其他设备?IntelliJ上的SWT支持如何?您知道适合它的UI设计器吗?我主要需要UI预览。
Android开发者

18

在Android Studio中运行Java程序的简单方法是

1)"Test.java"在Android Studio中创建一个Java类。

2)编写您的代码,例如Hello World要测试的程序。

3)右键单击Java类,然后选择“运行'Test.main()'”选项或按Cntrl + Shift + F10。

在那里,您的Java代码在下面运行。


1
这有效-谢谢!就我而言,第一次尝试运行gradle构建时,我遇到了崩溃的问题。所以我做了一个Android Studio > File > Invalidate Caches / Restart,然后问题就解决了
Gene Bo

1
@Shruti从运行应用程序切换到运行test.java后,第一次编译需要一段时间。您是否知道所创建的可执行文件是否已添加到APK大小中?
帕特里克

17

使用Android Studio 0.6.1+(可能更早),您可以轻松开发标准Java(非Android)应用。

此方法已在0.8.2上进行了测试:

首先使用“文件”>“新建项目”创建一个普通的Android Phone应用。然后添加一个Java库模块来保存您的Java应用程序代码。(即使您正在构建应用程序,也请选择“ Java库”)。您会发现可以使用main()方法,Swing应用程序等来构建和运行Java应用程序。

您将要删除不使用的自动生成的Android“应用”模块。转到文件->项目结构,然后将其删除(在左侧框中选择“应用”模块,然后单击框上方的“减号”图标)。现在,当您重新打开文件->项目结构->项目时,您将看到用于选择项目SDK和语言级别的选项,以及许多其他先前隐藏的选项。您可以继续从磁盘中删除“ app”模块。

在0.6.1中,您可以避免首先创建android模块:

转到文件>新建项目。填写您的应用程序名称。在“外形尺寸”选择页面上,在其中声明最小的Android SDK,取消选择 “移动”复选框,然后继续创建项目。

创建项目后,转到文件->项目结构->项目,然后将JDK设置为“项目SDK”。添加Java库模块来保存您的应用程序代码(如上所述)。


那我在哪里可以找到版本?如果我单击Build-> Make Project或Build-> Compile'PureJava.java',那么android studio会说“编译成功完成”。但是我找不到任何构建文件。我删除了应用程序模块以及应用程序文件夹。
2014年

1
您能够调试那些项目吗?
MLProgrammer-CiM 2014年

@ MLProgrammer-CiM是的,这是可能的。我碰巧在调试时,IDE在“更新索引”阶段的某个时刻停滞了,我不知道是什么原因,我曾尝试清理缓存并重新启动。
Shujito

14

这就是设置的样子。

在此处输入图片说明

编辑配置>'+'>应用程序: 在此处输入图片说明


嗨,亚当,我知道它是否仍然有效?为何我们需要此应用程序的gradle?是否可以进一步清理项目,以便仅显示最少的文件?
哈莎

嗨,@@@@@@@@@@@@@ shasha,我在2016年将其实现为实验。由于我在后端Kotlin / Java应用程序中使用了独立的IntelliJ,因此最近还没有实现。随时使用更新后的发现来更新评论/帖子。
亚当·赫维兹

5

我发现了一个有点笨拙,烦人且无法完全确保始终有效的解决方案。我想分享一下,以防别人觉得有用。

在Android Studio中,您可以右键单击带有main方法的类,然后选择“ Run .main()”。这将为YourClass创建一个新的Run配置,尽管它不会完全起作用:它将缺少一些类路径条目。

为了修复丢失的类路径条目,请进入“项目结构”,并手动为模块和所需的任何其他模块依赖项添加输出文件夹位置,如下所示:

  • 文件->项目结构...
  • 在左列面板的“项目设置”面板中选择“模块”
  • 在中间列面板的模块列表中选择您的模块
  • 选择右列面板上的“ Dependencies”选项卡

然后,对于拥有Java应用程序的模块以及所需的每个模块依赖项:-单击右列面板最右侧的“ +”->“ Jars或目录”-导航至输出模块的文件夹(例如:my_module / build / classes / main / java),然后单击“确定”-在“依赖关系”列表的新条目(最右边)上,将选择框从“编译”更改为“运行时”

之后,您应该能够执行刚刚创建的运行配置,以运行简单的Java应用程序。

要注意的一件事是,对于我的特定[参与的] Android Studio项目设置,我必须从Android Studio外部使用Gradle手动构建项目,以便在运行之前构建简单的Java Application类。应用程序-我认为这是因为类型为“应用程序”的运行配置未触发相应的Gradle构建。

最后,这是在Android Studio 0.4.0上完成的。

我希望其他人觉得它有用。我也希望Google尽快支持该功能。


1
I have to manually build the project with gradle, from outside Android Studio你是怎样做的?
Katedral Pillon

3

我从安装了IntelliJ IDEA社区版本 http://www.jetbrains.com/idea/download/

我尝试打开在Android Studio中启动的项目,但是在构建gradle时失败。相反,我同时打开了android studio和intellij,并将一个屏幕紧挨着打开,然后将我的java文件,xml布局,可绘制对象拖放到以IntelliJ开始的新项目的项目结构中。它解决了gradle构建问题,现在我可以在IntelliJ中启动一个新项目,并设计android应用程序或基本Java应用程序。值得庆幸的是,这很有用,因为我讨厌PC上有这么多的IDE。


3

我已经可以使用以下步骤进行操作:

  1. 打开Android Studio,然后选择“导入项目”。
    Android Studio导入项目

  2. 在浏览窗口中浏览到您的项目文件夹,然后选择它。


0

在Android Studio 0.8.14中进行了测试:
通过这种方式,我能够以最少的步骤运行一个标准项目:

  • 在打开的Android Studio项目中,单击文件>新建模块。
  • 单击更多模块> Java库>下一步,然后填写您喜欢的名称。
  • 一个新的模块将显示为与项目结构中“ app”文件夹相同级别的文件夹。打开它并打开新的Java类文件。

    然后,您可以添加代码,然后选择Build> Run'YourClassName'。Presto,您的代码在没有Android设备的情况下运行!


  • 这个答案与的答案有何不同@idunnololz?您的gradle是否可以使用gradle而无需任何其他步骤?
    Katedral Pillon

    0

    如果执行File> Open ...,然后选择pom.xml文件,它将非常完美。请确保将侧栏左上角显示为“ Android”的下拉菜单更改为“ Project”,以查看所有文件。我还认为,如果pom.xml文件所在的文件夹位于名为“ app /”的文件夹中,则会有所帮助。

    免责声明:我的Java项目是由Google App Engine生成的。


    您必须将依赖项移至pom还是会看到gradle的东西?
    Katedral Pillon

    0

    花了一天的时间来寻找最简单的方法。目的是找到实现此目标的最快方法。我无法像从终端运行javac命令,从netbeans或sublime text 3进行编译一样快。但是android studio的运行速度仍然不错。

    这看起来有些曲折,但由于我们不每天开始启动项目,所以我可以这样做。

    我下载了IntelliJ IDEA社区版本,并创建了一个简单的Java项目。我添加了一个主类并测试了运行。然后,只需关闭IntelliJ IDEA并打开Android Studio并在那里打开相同的项目。然后,我不得不简单地附加JDK,IDE通过显示可用的JDK列表来帮助我,我选择了1.8,然后编译良好。现在,我可以打开任何主文件,然后按Control + Shift + R来运行该主文件。

    然后,我通过Mac OS Finder将所有Java文件复制到src文件夹中。而且我能够编译任何我想要的东西。

    与Gradle或Android没有任何关系,并且编译速度还不错。

    谢谢哥们


    0

    要在Android中运行Java文件,请确保您的类具有main方法。在Android Studio 3.5中,只需右键单击文件内部,然后选择“运行'Filename.main()'”,或在菜单上单击“运行”,然后从出现的下拉菜单中选择“运行文件名”。

    By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
    Licensed under cc by-sa 3.0 with attribution required.