zoukankan      html  css  js  c++  java
  • 使用Android Studio开发J2SE项目方法

    0、前言

    最近因为要为项目开发一个底层的Java应用,所以非常偶然的遇到了这样一个问题,过去Eclipse有Java Project而现在手头使用Android Studio并不能直接建立Java应用项目。所以在网上搜集和整合了些资料后发现其实Android Studio也能很完美的支持Java应用项目的开发,所以写这样一篇博客分享给有同样需要的Coder。

    1、J2EE项目的建立

    Android Studio中并不能直接建立Java项目,所以比较简单偷懒的办法是先随便建一个Android项目,然后再给Project添加一个Java Library Module,这样就你的项目中就有了一个Java模块,你在Android Studio的Gradle窗口中可以找到build、jar之类的Task,运行这些Task即可构建与打包,但需要注意,这时并不能直接运行该Java模块,因为并没有为这个模块建立运行脚本。

    2、为Java Library建立运行脚本

    如果你要将Java Library模块转换为一个可以直接运行的Application模块,其实非常简单,只要点击Run菜单中的Edit Configurations,然后在左侧可以看到若干的运行脚本,点击左上角的“+”,然后加入一个Application配置,然后选中新加的配置,可以看到其中有Main Class(指定你的Main方法类啦)、VM Option(可以设置堆大小之类的)、Program Arguments(可以设置运行参数)、Use Classpath of Module(设置关联哪个Module的ClassPath)还有是否开启Form截图、是否使用自定义JRE之类的。

    那我我们一般需要做的事情,首先,要将Main Class设置为你Java Library Module中期望运行的那个带main方法的类,其次要将Use Classpath of Module设置为你建的那个Java Library Module,这样就基本完成了一个执行脚本的配置。

    然后还需要做一件事情就是在Gradle中设置Main Class,打开Java Library Module中的build.gradle文件,将其改为如下:

    1 apply plugin: 'java'
    2 apply plugin: 'application'
    3 
    4 mainClassName = 'org.hanos.java.MainApplication'
    5 
    6 dependencies {
    7     compile fileTree(dir: 'libs', include: ['*.jar'])
    8 }

    需要注意其中的application插件与mainClassName,完成这一步后,试试运行新建的脚本吧~~

    3、为Java Library打可执行的Jar包

    这个其实非常简单,只需要修改build.gradle即可:

     1 apply plugin: 'java'
     2 apply plugin: 'application'
     3 
     4 mainClassName = 'org.hanos.java.MainApplication'
     5 
     6 jar {
     7     manifest {
     8         attributes 'Main-Class': mainClassName
     9     }
    10     baseName = 'HFrameJava'
    11     version =  '0.1.0'
    12 }
    13 
    14 dependencies {
    15     compile fileTree(dir: 'libs', include: ['*.jar'])
    16 }

    其中,manifest表示所需要打的Jar包中的清单需要加入一些什么属性,可执行jar包需要加上Main-Class指明运行的主方法类,baseName表示打出jar包的名称,version表示版本号,完成这个build.gradle的编写后,sync项目,然后执行jar task即可在<Module>/build/outputs/libs中找到jar包

    好的,基本上Android Studio开发Java Application所需要的内容就在这里了,如果有新的发现,欢迎大家留言补充,谢谢~

  • 相关阅读:
    L84
    L83
    T57
    T56
    Listen 82
    Listen81
    PyQt(Python+Qt)学习随笔:QListView的isWrapping属性
    PyQt(Python+Qt)学习随笔:QListView的movement属性
    PyQt(Python+Qt)学习随笔:QListView的gridSize属性
    第15.20节 PyQt(Python+Qt)入门学习:QColumnView的作用及开发中对应Model的使用
  • 原文地址:https://www.cnblogs.com/halfmanhuang/p/4943038.html
Copyright © 2011-2022 走看看