精华内容
下载资源
问答
  • 使用 run-java.sh 运行 Java 应用
    千次阅读
    2021-11-12 01:17:23

    当需要运行Java应用时,不管在机器上还是容器里,一般的做法是运行 java 命令。

    一些 Java 应用会被打包成单个可执行的 JAR 文件,如 Spring Boot 应用。对于这样的 JAR 文件,只需要使用 java -jar /opt/app.jar 即可。

    另外一些应用会打包成多个 JAR 文件的形式。对于这样的目录结构,只需要用 java -cp lib/* com.example.Main 指定类路径(classpath)和入口 Java 类即可。

    在构建容器镜像时,一般使用 Dockerfile 的 ENTRYPOINT 来指定运行的 java 命令。

    ENTRYPOINT [ "java", "-jar", "/opt/app.jar" ]

    直接使用 java 命令的做法,在容器运行时并不灵活。如果想使用 -D 参数来添加新的系统属性,就必须要修改 Dockerfile 中的ENTRYPOINT 定义。这就意味要创建新的镜像,使用起来非常的不方便。

    更好的做法是使用本文中介绍的 run-java.sh。顾名思义,run-java.sh 是一个 shell 脚本。它的作用是运行Java程序。该脚本可以从 GitHub (fabric8io-images/run-java-sh) 或 Maven 仓库(io.fabric8:run-java-sh:1.3.8)下载。

    基本用法

    该脚本的特点是可以使用环境变量来配置调用 java 命令时的参数。这些环境变量大致可以分成如下几类:

    第一类与Java应用相关。

    • JAVA_APP_DIR 设置应用文件的根目录,默认为 run-java.sh 所在的目录。

    • JAVA_APP_NAME 设置应用进程的名称。

    • JAVA_MAJOR_VERSION 设置 JVM 的版本号。默认从 java -version 命令的输出中解析。

    第二类与 Java 应用的 classpath 相关。

    • JAVA_CLASSPATH 设置完整的 classpath。

    • JAVA_LIB_DIR 设置作为库的 JAR 文件的目录。默认为 JAVA_APP_DIR 的值。

    • JAVA_APP_JAR 设置可执行的 JAR 文件的路径。

    • JAVA_MAIN_CLASS 设置入口类的名称。

    第三类与Java运行的参数相关。

    • JAVA_OPTIONS 设置额外的参数。

    第四类与运行的内存和 CPU 相关。

    • JAVA_INIT_MEM_RATIO 设置起始的 heap 尺寸占全部内存的比例。转换成参数 -Xms。值 20 表示 20%

    • JAVA_MAX_MEM_RATIO 设置最大的 heap 尺寸占全部内存的比例。转换成参数 -Xmx。值 50 表示 50%

    • JAVA_MAX_CORE 设置最大的 CPU 核数。

    第五类与调试相关。

    • JAVA_DEBUG 启用远程调试。

    • JAVA_DEBUG_SUSPEND 以暂停模式启用远程调试。

    • JAVA_DEBUG_PORT 设置远程调试的端口。默认为 5005

    第六类与 HTTP 代理相关。

    • HTTP_PROXY 设置 HTTP 代理。转换成 Java 的系统属性 http.proxyHost 和 http.proxyPort

    • HTTPS_PROXY 设置 HTTPS 代理。转换成 Java 的系统属性 https.proxyHost 和 https.proxyPort

    • NO_PROXY 设置不使用代理的主机名。转换成 Java 的系统属性 http.nonProxyHosts

    最后一类与应用诊断相关。

    • JAVA_DIAGNOSTICS 启用输出额外的诊断信息。

    需要注意的是,JAVA_INIT_MEM_RATIO 和 JAVA_MAX_MEM_RATIO 要求设置容器的内存约束,也就是 Kubernetes 容器声明的 resources.limits.memory 的值。否则的话,这两个设置都无效。内存的约束值作为计算时的基础。

    具体使用

    下面我们看一下如何具体使用 run-java.sh

    实际上,Quarkus 应用在以 JVM 模式运行时,默认的容器镜像使用的就是 run-java.sh。下面是 Dockerfile 的内容。

    在构建镜像时,从 Maven 仓库下载 run-java.sh 脚本,并保存为 /deployments/run-java.sh 文件。ENTRYPOINT 指令直接运行 run-java.sh 脚本。额外的参数以环境变量 JAVA_OPTIONS 来传递。

    FROM registry.access.redhat.com/ubi8/ubi-minimal:8.4 
    
    ARG JAVA_PACKAGE=java-11-openjdk-headless
    ARG RUN_JAVA_VERSION=1.3.8
    ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'
    # Install java and the run-java script
    # Also set up permissions for user `1001`
    RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \
        && microdnf update \
        && microdnf clean all \
        && mkdir /deployments \
        && chown 1001 /deployments \
        && chmod "g+rwX" /deployments \
        && chown 1001:root /deployments \
        && curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \
        && chown 1001 /deployments/run-java.sh \
        && chmod 540 /deployments/run-java.sh \
        && echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/conf/security/java.security
    
    # Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size.
    ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
    # We make four distinct layers so if there are application changes the library layers can be re-used
    COPY --chown=1001 target/quarkus-app/lib/ /deployments/lib/
    COPY --chown=1001 target/quarkus-app/*.jar /deployments/
    COPY --chown=1001 target/quarkus-app/app/ /deployments/app/
    COPY --chown=1001 target/quarkus-app/quarkus/ /deployments/quarkus/
    
    EXPOSE 8080
    USER 1001
    
    ENTRYPOINT [ "/deployments/run-java.sh" ]

    需要注意的是,这里并没有使用 JAVA_APP_JAR 或 JAVA_MAIN_CLASS 来指定应用的入口 JAR 文件或 Java 类。在这种情况下,run-java.sh 会查找应用根目录下的唯一 JAR 文件,作为 JAVA_APP_JAR 的值。这个时候,应用根目录下必须有且仅有一个可执行的 JAR 文件。否则,脚本会出错。

    下面介绍一个 run-java.sh 脚本的使用场景。当 Java 应用在 Kubernetes 上运行时,发现了一个只在 Kubernetes 上可以重现的 bug。这个时候需要启用 Java 的远程调试功能来进行调试。此时,可以修改应用的 Deployment,添加一个名为 JAVA_DEBUG,值为 true 的环境变量。当新的 Pod 启动之后,应用已经启用了远程调试功能。用 kubectl port-forward 访问 Pod 的 5005 端口,就可以在 IDE 中进行调试。在我B站的视频中,有该场景的具体演示。

    如果需要下载 run-java.sh,可以关注我的公众号,发送消息 “run-java” 即可,会给出网盘下载地址。

    更多相关内容
  • Java桌面应用

    千次阅读 2021-03-09 20:24:18
    不要说刚接触电脑的人,就算是比较熟悉电脑,如果没有接触过Java,面对一个Java应用,如何在Windows下启动它,估计都会折腾半天。如果 不是因为这个问题,Java在我的眼里算是最完美的语言了,也是我最喜爱的语言。...

    对于作Java桌面应用来说,比较烦人的就是安装部署问题,客户端是否安装有jre、jre版本问题、jre去哪下载、如 何用jre启动你的Java应 用?不要说刚接触电脑的人,就算是比较熟悉电脑,如果没有接触过Java,面对一个Java应用,如何在Windows下启动它,估计都会折腾半天。如果 不是因为这个问题,Java在我的眼里算是最完美的语言了,也是我最喜爱的语言。

    所以我认为这个是导致Java桌面应用被一些人所讨厌的最大原因,Java的优势是“一次编写,随处运行”,跨平台特性确实很好,但并不是每个人都需要或都想要跨平台,而且有时候JVM平台或版本问题也会造成“一次编写,到处测试”的尴尬。

    最好的方式莫过于带着JRE,让用户轻松点击就能运行。下面我们来解决这样的问题,有什么好的建议或方法请其他朋友多多指教或补充!

    针对windows平台,让用户一键式安装,双击使用, 使用工具exe4j + Inno Setup, 这两个工具都可以在网上找到,不熟悉的可以多搜搜,使用起来也不难。

    带着JRE运行,JRE的大小应该是最让人头疼的,我默认安装的jre6大小达到80M,而程序只有200-300k左右,感觉非常不合理,分发与网络传 输过程也会大受影响!为了解决这个问题我一直在网络上搜索“瘦身版”的JRE,无意中搜到了Beansoft老师介绍的一篇关于迷你JRE的文章,相关的 JRE下载后解压约14M左右,试用了一下,相对于我的应用缺少了一些类文件,关于部分xml操作类,及swing桌面应用框架相关连的部分类也找不到, 最后借鉴了一下,自己把一个完整的JRE从80M瘦到了38M,去除了很多不需要的类文件,当然,如果耐心一点还可以再瘦下去,再抽掉一些类文件。

    在这个基础上再配合Inno Setup这个安装包制作工具,最后把整个程序从40M压到了8M,下面看看关于整个操作过程,关于JRE的瘦身有些烦琐就不写了,而且SUN的JRE瘦身计划也在进行,相信很快会有更小的瘦身版JRE推出,自己没有必要再去费神。

    下面是我的一个完整的Java程序 —— MyLoading

    215dfea60a829d5bc2f0fa080ddf909e.png

    可以看到已经附带了jre1.6 , 下面先使用exe4j给它制作一个exe执行文件(即上图的MyLoading.exe),并指定我们自带的jre1.6 。以下是exe4j的启动界面,点击下一步开始创建配置文件。

    34a6cf0edc1e1edcc715417b48312685.png

    接着选择类型,我们选择第一个,这样可以保证程序仍具有跨平台的特性。如果选择第二个,可以把程序完全编译成exe文件,可以更好的保护你的程序不被反编译。

    617d03388e649ceba3e3441e3da9710a.png

    接下来设置你的程序的短文件名,源文件夹路径(如我的:E:/MyLoading),以及要生成的exe文件的存放目录,exe存放目录必须指定到源文件夹下,这里我把它指定为E:/Myloading的根目录下。

    212d75c5593f346ae1eddd6a9edf675d.png

    接下来,可以给我们即将生成的exe文件起一个名字,如我的“MyLoading”,还可以给它指定一个ico类型的图标,其它按默认就可以了,如图:

    d99307bdf8fc026d1a49a0dda462e432.png

    接下来的这一步,我们需要把程序中所用到的类路径添加上去。然后指定程序的启动类,其它如果没有必要的话,则按默认即可,点击+号添加类路径:

    7d222c3e360898315bfc03367d475f37.png

    基本上你所需要用到的Jar文件都要添加上去,可以逐个添加上去,也可以添加整个文件夹或者使用系统环境变量,为了使你的程序能够随处运行,所以还是强列 建议你使用相对路径,并且不要使用环境变量。添加好你的类路径之后回到上一步去选择好你的"Main Class"即可。

    2241812c04c9f140ac57cdfc25b3ea73.png

    接下来先选择我们的程序所需要的jre版本, 然后便是选择我们自带的jre了,这一步不是必须,但是为了更好的分发程序,我们自带了jre, 所以必须把我们自带的jre指定为首选的运行环境,如图选择:

    Search sequence

    95b8a56ef06ba6c3c03bc48c20a19ec0.png

    默认情况下程序会去系统的注册表,环境变量及相关的目录查找jre,因为我们只需要自带的jre,所以这里我把默认的选项移除了,然后添加我们自己的jre所在的目录路径,点+号开始:

    179b6627ee84ac38a73824919083ed5a.png

    这里还是建议使用相对的目录路径:

    655aba16a822df363adb487b90a19d0c.png

    指定jre所在的目录,如图:

    13d865e9e7773a10256ef8d156d76f7d.png

    最后我的jre目录路径就是这样的:./jre1.6

    39f32fc4112c3b1ee767f2767a3496b0.png

    下面这一步只是简单的给程序添加一个启动画面,然后按默认下一步下一步就可以了。

    3261c454c430202feaaafa283757ab7a.png

    程序最终生成了这个执行文件: MyLoading.exe

    现在使用它,已经可以正常利用我们自带的jre启动程序了,但是整个程序仍有40M的大小.

    现在我们使用Inno Setup进行压缩并制作一个安装包。

    724f03b56d6696b87935c2a7e773d971.png

    Inno Setup的下载安装请到网上搜索,安装后启动脚本向导,如图所示:

    f64f9704442c156457d775e768198d90.png

    整个过程很简单:

    680e2fbb9dacdf0affc003e30933c833.png

    这里指定你的程序的启动文件,即刚才用exe4j创建的exe文件,并将你的整个程序目录都包含进去就可以了,接下来的基本上一直按下一步就可以了,直到脚本向导完成,

    c250084e5f36eed1631224bd856c2692.png 

    42e0d2fb6e409e21a5cc897efc61e2d1.png

    然后执行该脚本即可:

    ae45ae5dff9dc9192b095b1d80405c9c.png 

    36d2162f1b5bb9feaf50a680c05c29ac.png

    然后找到Inno Setup的默认输出目录,就可以看到编译输出后的安装包了,如下图:MyLoading安装.exe

    大小已经压到了8.86M。

    f49e0022c3895a9d48e6fa562a584519.png

    利用这个就可以快速轻松的安装你的Java桌面应用了。

    ee8a084d04f2aa941a969b6528fa137f.png

    展开全文
  • 什么是Java 应用程序的主类?

    千次阅读 2021-02-25 19:59:02
    问题阐述在进行Java 应用程序开发时,为了使应用程序能够运行,这个应用程序必须要含有一个主类,请问什么是Java 应用程序的主类?专家解答Java 应用程序是由若干类和接口组成的,为了使Java 应用程序能够运行,至少...

    问题阐述

    在进行Java 应用程序开发时,为了使应用程序能够运行,这个应用程序必须要含有一个主类,请问什么是Java 应用程序的主类?

    专家解答

    Java 应用程序是由若干类和接口组成的,为了使Java 应用程序能够运行,至少要有一个类含有main()主方法,因为main()主方法是Java 应用程序的入口点,Java 应用程序就是从这里开始运行的,我们把含有main()主方法的类称为Java 应用程序的主类。

    例如:

    . 没有主方法的类,即非主类。

    f9874f7f33c5701dcad717e703be0439.png

    . 含有主方法的类,即主类。

    e1b664770ac9fc42c463532268033349.png

    运行程序,程序将从主类MainApp 的main()主方法开始执行,在该方法中首先创建PrintInfo 类的实例,然后通过该实例调用printMsg()方法,在控制台打印输出信息,效果如图6.8 所示。

    0f137aa6c547906f4c8e9c14db1551cf.png

    专家点评

    Java 应用程序是从main()主方法开始运行的,在Java 应用程序中将含有main()主方法的类称为主类,而在一个Java 应用程序中,开发人员往往为了测试的方便,会为每个类添加一个主方法,但是在测试完以后,应该记着将进行测试的主方法删除,只保留主类中唯一的一个主方法。

    展开全文
  • Java 应用性能监控系统 JavaMonitor

    千次阅读 2018-11-29 17:58:28
    Java应用性能监控系统 1.简介 WY(Java应用监控系统)是基于Java8制作而成的一款在线监控系统。 WY适用于监控所有Java应用,具有堆内存监控、方法区监控、GC监控、类加载监控、类编译监控与线程监控等,提供堆...

    Java应用性能监控系统

    1.简介

    WY(Java应用监控系统)是基于Java8制作而成的一款在线监控系统。

    WY适用于监控所有Java应用,具有堆内存监控、方法区监控、GC监控、类加载监控、类编译监控与线程监控等,提供堆快照下载,线程快照下载等功能。

    WY的使用非常简单,只需要把它扔在你的服务器上执行即可,它会立即检测当前机器上的所有Java应用并进行监控。

    WY使用webSocket建立客户端与服务端通信,大大降低了客户端流量与服务器负载。

    2.说明

    基于Java8开发,低于Java8不支持

    3.下载使用

    下载项目Jar包直接执行即可

    java -jar java_monitor-0.0.x-SNAPSHOT.jar

    启动成功后默认访问端口8888

    4.运行界面

    5.自定义端口

    在执行jar包时追加参数

    --server.port=9999

    6.自定义监控周期

    默认监控频率为60秒,并且只记录当天产生的监控数据。

    如果需要自定义监控频率与监控时长,只需要在jar包所在目录下新建application.properties文件,修改下列字段即可

    monitor.rate=60 #监控频率/秒
    monitor.cron=0 0 0 * * ? #每日的0:00:00时刻清空数据

    连续监控1个月,示例

    monitor.cron=0 0 0 1 * ?

    连续监控1年,示例

    monitor.cron=0 0 0 1 1 ? *

    不新建文件,使用追加参数的方法也是可以的。

    7.监控参数

    监控参数的含义如下:

    • S0C:s0(from)的大小(KB)

    • S1C:s1(from)的大小(KB)

    • S0U:s0(from)已使用的空间(KB)

    • S1U:s1(from)已经使用的空间(KB)

    • EC:eden区的大小(KB)

    • EU:eden区已经使用的空间(KB)

    • OC:老年代大小(KB)

    • OU:老年代已经使用的空间(KB)

    • MC:元空间的大小(Metaspace)

    • MU:元空间已使用大小(KB)

    • CCSC:压缩类空间大小(compressed class space)

    • CCSU:压缩类空间已使用大小(KB)

    • YGC:新生代gc次数

    • YGCT:新生代gc耗时(秒)

    • FGC:Full gc次数

    • FGCT:Full gc耗时(秒)

    • GCT:gc总耗时(秒)

    • Loaded:表示载入了类的数量

    • Unloaded:表示卸载类的数量

    • Compiled:表示编译任务执行的次数

    • Failed:表示编译失败的次数

    • Total:线程总数

    • Runnable:正在运行的线程数

    • Sleeping:休眠的线程数

    • Waiting:等待的线程数

    展开全文
  • Java中this的应用

    千次阅读 2022-01-20 12:15:17
    this的应用[开发应用] 第一种应用: this. (1)this :代表当前对象,类似于“我”,访问当前对象的属性和方法 (2)this. :用于本类中访问当前对象的属性和成员方法,可以应用在本类的成员方法 中,也可以应用...
  • Java桌面应用程序

    万次阅读 多人点赞 2017-04-13 15:27:47
    java桌面应用印象因为桌面程序运行在宿主机器上, 所以比如你运行java桌面程序,必然要安装java虚拟机, 也就是相当于在操作系统上再加一层抽象, 这与直接调用api的桌面程序效率相比,或多或少低一点。 因为...
  • java输出学生学号,姓名,成绩设某一个班共有N(N=20)学生,期末考试5门课程,请编一程序评定学生public class Student { private int kemu1, kemu2, kemu3, kemu4, kemu5; public int getKemu1() { return kemu1; ...
  • Java应用程序的运行机制(介绍)

    千次阅读 2019-04-01 11:15:48
    Java首先利用文本编辑器编写Java源程序,源文件的后缀为.java;再利用编译器(javac)将源程序编译成字节码文件,字节码文件的后缀为.class;最后利用虚拟机(解释器,JVM)解释执行。 不同的操作系统安装相应...
  • 在java中,main()方法是java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是public static void类型的...
  • 如何用Eclipse编写第一个Java应用程序

    千次阅读 多人点赞 2020-05-06 02:11:54
    想要在eclipse中编写Java代码,必须首先创建一个Java工程,也就是Java Project。 (1)选择File,然后选择New–>Java Project选项,然后就会弹出新建Java工程的对话框。 (2)在新建Java工程对话框中输入Java工程...
  • 一个简单的Java应用程序

    千次阅读 2018-05-31 13:58:24
    下面看一个最简单的Java应用程序,其功能:发送一条消息到控制台窗口中。源代码如下:public class FirstSample{ public static void main(String[] args) { System.out.println("We will, we will."); }...
  • IDEA建立java应用程序

    千次阅读 2018-04-05 18:36:32
    创建项目让我们创建一个简单的项目。单击Create New Project创建新的项目。打开新建项目向导。...因为我们做一个Java项目,我们需要一个Java SDK(JDK)。至此IDEA上运行环境已搭界好。 接下来建立应用项...
  • Java中常用WEB服务器和应用服务器

    万次阅读 2018-06-29 15:20:31
    一、web服务器和应用服务器的区别 Web服务器传送页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是...
  • 比如现在有一个桌面应用。我现在要抓取这个桌面应用输入框或者其他控件的内容
  • java读取apk文件信息(包括版本号,包等),欢迎下载
  • Java 3DMenu 界面源码 5个目标文件 内容索引:Java源码,窗体界面,3DMenu Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都...
  • JAVA反射机制以及常见应用场景

    万次阅读 2020-04-22 22:29:01
    前言: 反射机制是JAVA的核心知识点之一,大多数框架的实现原理就是利用了...在这个时候就不得不提及java的RTTI(Run-Time Type Information)运行时类型识别这种机制,在JAVA中,有两种RTTI方式,一种是传统的,即在...
  • 使用jdk工具jdb调试Java应用程序

    千次阅读 2022-03-31 09:30:28
    、但是当java程序处于受限环境下运行,比如应用服务器是隔离的内网环境,这时候在服务器上安装开发工具就显得那么繁琐。由于jdb是jdk自带的命令行调试工具,它本身是轻量级的,也省去了额外的安装环节。 二、jdb调试...
  • Java--反射机制原理、几种Class获取方式及应用场景

    万次阅读 多人点赞 2021-08-22 11:26:31
    2.1 三种方式及区别2.2 代码演示区别三、Java反射机制的应用场景有哪些?3.1 应用场景3.2 应用场景实现3.2.1 简单工厂模式3.2.2 简单工厂模式优化(应用场景)3.2.1 代理模式中动态代理(应用场景) 学习背景 学习...
  • 第一个spark应用开发详解(java版)

    万次阅读 多人点赞 2019-02-08 21:53:06
    java版的spark应用开发
  • Java没法验证,将不执行该应用程序

    千次阅读 2021-02-28 10:54:41
    EditPlus是很多程序员非常熟悉的编辑工具,它以占用系统资源小、操作简便灵活、...实现对JAVA的编译在配置EditPlus之前,我们先要将JAVA的运行环境安装并且调试好,这里我就不再说明了。首先,从菜单“工具(Tools...
  • 全国大学生计算机技能应用大赛Java模拟题

    千次阅读 多人点赞 2021-04-01 10:47:18
    全国大学生计算机技能应用大赛Java模拟题 竞赛官网:http://www.cnccac.com/ 单选题 1.以下哪个不是java的垃圾回收算法 A.标记清除算法 B.空间分配算法 C.标记整理算法 D.分代回收算法 2.下列名称在java语言中属于...
  • 展开全部使用Java语言编写的源程序保存时的文件扩展为“.java”。经过编译之后会生成62616964757a686964616fe58685e5aeb931333436316366“.class”为后缀的文件。源代码(也称源程序)是指未编译的按照一定的程序...
  • Java高手真经(应用框架卷):Java Web核心框架.pdf

    千次下载 热门讨论 2012-11-05 16:59:12
    Java高手真经(应用框架卷):Java Web核心框架 一整套java的学校资料!总计五本!
  • java桌面应用开发 - javaFx (从0-1 小步快跑)

    万次阅读 多人点赞 2019-08-01 17:43:52
    目录 前言 开发环境 开发过程 如何建立javaFx项目 集成maven 集成maven后项目无法找到xml资源 如何实现自定义TabPane ...在XP系统中提示不是32位应用程序 实现历史搜索记录下拉框 自定义窗体风格 窗口最...
  • Java 反射在实际开发中的应用

    万次阅读 2018-09-25 10:28:23
    一:Java类加载和初始化 1.1 类加载器(类加载的工具) 1.2 Java使用一个类所需的准备工作 二:Java中RTTI  2.1 :为什么要用到运行时类型信息(就是RTTI) 2.2 :RTTI在运行时如何表示 2.3 : ...
  • JAVA程序包装成桌面应用程序

    千次阅读 多人点赞 2019-07-09 08:50:17
    一,首先你得有写好的JAVA代码,并能够跑起来,注意,不是WEB结构,是纯JAVA结构,我的结构如下,不会建JAVA结构的可以百度,一大堆。这里就不赘述打。 二,你得下载一个打包成exe的助手exe4j.这长这样(这里就不...
  • 什么是可扩展的应用程序呢?可扩展的意思是不需要修改原始代码,就可以扩展应用程序的功能。我们将应用程序做成插件或者模块。...本文将会向大家介绍如何通过java中的SPI机制实现这种可扩展的应用程序。
  • Java基础(多态的理解与应用)

    万次阅读 多人点赞 2019-05-25 11:23:07
     Java作为面向对象的语言,同样可以描述一个事物的多种形态。如Student类继承了Person类,一个Student的对象便既是Student,又是Person。 3.多态体现为父类引用变量可以指向子类对象。 4.前提条件:必须有子父类...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     Java 3DMenu 界面源码,有人说用到游戏中不错,其实平时我信编写Java应用程序时候也能用到吧,不一定非要局限于游戏吧,RES、SRC资源都有,都在压缩包内。 Java zip压缩包查看程序源码 1个目标文件 摘要:Java源码...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,178,133
精华内容 471,253
关键字:

java 应用名

java 订阅