Java 构建的应用程序只是一堆.class 文件的集合;哪怕再“高阶”一点,生成的.jar 文件也只能在安装了 Java 的计算机上运行。...所以在 Mac 上运行时,Swing UI 的观感与 Cocoa 等本机应用程序完全相同;而在 Windows 上运行时,观感又高度接近 Windows。...Swing/AWT 曾经是、现在也仍然是 Java 中内置的唯一工具包,能够确保开发者无需任何第三方依赖项、单凭 Java 运行时环境就构建起完整的 GUI 应用程序。...这意味着大家完全可以将 Java 应用程序直接发布给 Mac 用户,代码一定能在机器上运行起来、而且提供与本机系统相匹配的观感体验。...而且要实现从 Cocoa 到 Java 的对接,开发者必须能熟练地将 Objective-C 代码转换成 Java 中的等价表示——相当累人。
【Java JDK 环境搭建】 一、为什么 Java JDK 要配置环境变量 配置环境变量,可以使 jdk 工具 全局生效!...二、环境变量全局识别的原理 当在命令行中执行的程序不存在时,Windows 系统会在本地已有的一个名为 path 的环境变量中查找路径列表中是否存在目标程序。...变量 点击编辑 添加 %JAVA_HOME%\bin 添加 %JAVA_HOME%\jre\bin 逐个确定退出 四、配置测试 打开 命令行 输入 javac 输入 java 输入 java -version...而 CLASSPATH 是用来告诉编辑器在那里寻找 Java 编译过程中所需的包和类所以其路径中配置的是 lib 目录下的 dt.jar 和 tools.jar; 为什么没有配置 CLASSPATH 变量...(当前路径) 变量名:Path 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 注意:在 Windows10 中,Path 变量里是分条显示的,我们需要分开添加,否则无法识别
java ,javaw 和 javaws 的区别: 首先,所有的这些都是java的启动装置,java.exe经常使用,当使用命令行输出到window的时候,会有java.exe进程,通过任务管理器可以看到...jvm.dll jvm.dll是一个java虚拟机在windows平台环境上的实现,也是JRE的一部分,一个C程序能够使用jvm.dll直接运行在jvm上。...javaw.exe javaw.exe是相似的和java.exe 是一个win32的GUI应用,应用提供自己的GUI窗口,不启用控制台。 因此我们想运行一个GUI程序不需要命令控制台。...如果用javaw通过命令行运行也是 注: javaw -classpath . javaw.HelloWorldSwing 启动的进程为javaw.exe java -classpath . javaw.HelloWorldSwing...javaw运行GUI后 直接就可以进行下一条命令的运行了。 javaws.exe javaws.exe进程适用于启动通过web 配置的程序,简而言之就是在web应用程序中应用。
第一个applet程序 applet必须通过html文件使用浏览器或者是命令行中的appletviewer命令才能运行,在此使用浏览器过于麻烦,所以在下面我们都将使用命令行,来执行。 1)....代码中获取到这个值呢?...为了方便,我不再使用上面的命令行启动了,我使用myEclispse来进行编写这样然后能直接运行,这样更快。...上面的代码中明显区分java.applet.Applet和javax.swing.JApplet,前者能够直接添加组件,而后者需要使用面板来添加。...运行之后,会在控制台看到调用的方法。在此不再叙述了。 设置字体大小和颜色属性 Graphics类和Font类和FontMetrics类结合在一起,就能在屏幕上显示文本。
vi,java,ant 和Junit 的学习报告 一、vi编辑器的使用 总体概念:Vi 编辑器是所有 Unix 及 Linux 系统下标准的文本编辑器 进入Vi环境后,基本有三种基本状态:命令行模式(...,添加JFC/Swing组件架构的支持 需要引入的包: import java.awt.*; import javax.swing.*; Swing 的三个基本构造块:标签(JLabel)、按钮(JButton...文件的目标文件夹 java 运行 Java 程序 jar 打包生成 jar 文件 war 打包生成 war 文件 四、Junit 是什么 JUnit是一个Java语言的单元测试框架。...作用 用来简化代码的测试过程,提高效率。 用法 如果要测试以下类的成员方法,不借助junit的情况下,测试的代码需要写在测试类的main()函数中。...c.sub(2, 1); Assert.assertEquals(result, 1); } } 注解 @Test: 需要测试的方法 @Ignore: 忽略的测试方法,暂时不运行此段代码
Igotti 的回答是,“旧有 Java 框架基本上就是修改版的 Swing。...Swing 属于默认 JDK UI 框架,Swing 和 AWT(Abstract Windows Toolkit,抽象窗口工具包)。...JetBrains IDE 中的 Compose for Desktop 项目 Compose 与 Swing 有一个比较大的共同点:与其他使用本机控件的跨平台框架,比如例如 Java 的 SWT(Standard...那 Compose for Desktop 应用程序是否依赖于 JVM(Java Virtual Machine)运行?Igotti 表示,“我们也知道,JVM 应用程序的发布情况可能比较棘手。...Igotti 并没有给出具体的发布日期,但表示自己希望 Beta 版能在今年秋天发布,“我们也希望能在今年之内推出 1.0 版本。”
Igotti 的回答是,“旧有 Java 框架基本上就是修改版的 Swing。...Swing 属于默认 JDK UI 框架,Swing 和 AWT(Abstract Windows Toolkit,抽象窗口工具包)。...JetBrains IDE 中的 Compose for Desktop 项目 Compose 与 Swing 有一个比较大的共同点:与其他使用本机控件的跨平台框架,比如例如 Java 的 SWT(Standard...那 Compose for Desktop 应用程序是否依赖于 JVM(Java Virtual Machine)运行?Igotti 表示,“我们也知道,JVM 应用程序的发布情况可能比较棘手。...字节教育约九成员工被裁,赔偿N+2;王思聪砸百万元组装服务器,跑分全球第4;调查:Clojure语言最赚钱 | Q资讯 XML之父:不对代码做测试就像“上完厕所不洗手” 为什么软件工程师出身的CEO
只要FX窗口工具包代码在Linux上使用GTK 3,就会发生这种情况,这是JavaFX 11的默认设置。 建议的解决方法是在运行JavaFX应用程序时使用Xorg服务器而不是Wayland服务器。...使用JDK 10运行时,Swing interop需要合格的导出 要使用带有OpenJDK 10版本的JavaFX 11运行FX / Swing互操作应用程序,必须在java命令行中添加以下四个限定导出...使用具有独立SDK的安全管理器运行时,Swing interop失败 在启用安全管理器的情况下运行时,FX / Swing互操作应用程序将失败。...使用jlink创建的最小jdk映像时,Swing interop失败 使用包含JavaFX 11 jmods包中的javafx.swing模块的jlink创建的最小Java映像将无法运行FX / Swing...将javafx中的java.util.logging替换为System logger 其他 JDK-8196297 删除过时的JFR记录器代码 其他 JDK-8199357 从FX删除对applet和
例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。...;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 解释语:dt.jar是关于运行环境的类库,主要是swing的包在用到swing时最好加上...我们注意到在Path中变量值bin目录下的各个exe工具的大小都很小,一般都在27KB左右,这是因为它们实际上仅仅相当于是一层代码的包装,这些工具的实现所要用到的类库都在tools.jar中,用压缩软件打开...作用是指定命令搜索路径,在命令行下面执行命令如javac编译java程序时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。...会发现保存之后编译文件还是旧的,新加的代码没有被重新编译。
1 现象及问题 在Swing程序中,经常能看到如下这种代码: ? 为何用invokeLater,而不直接调用呢? 大多数Swing的API非线程安全,不能在任意地方调用,应该只在EDT中调用。...该方法运行在初始化或启动线程上。初始化线程读取程序参数并初始化一些对象。 在许多Swing程序中,该线程主要目的是启动程序的GUI。创建UI的点,也就是程序开始将控制权转交给UI时的点。...任何与GUI无关的处理不要由EDT执行,尤其是I/O耗时操作 7 Swing不是一个“安全线程”的API,为什么要这样设计 Swing的线程安全不是靠自身组件的API来保障,虽然repaint方法是这样...,但是大多数SwingAPI是非线程安全的,也就是说不能在任意地方调用,它应该只在EDT中调用。...从1.3版本开始,此方法只是java.awt.EventQueue.invokeLater()的封面。 与Swing的其余部分不同,可以从任何线程调用此方法。
什么是JRuby JRuby是一个纯Java实现的Ruby解释器。通过JRuby,你可以在JVM上直接运行Ruby程序,调用Java的类库。...就像标准的Ruby解释器一样,除开使用Ruby调用本地方法(C代码)或者Java类库以外,Ruby代码都能够在JRuby里面正确执行。...JRuby 允许Rails 应用部署在流行的Java 应用服务器中,很多企业早已建立了这样的运行环境,但因为某些原因无法为运行Rails 应用建立一个全新的运行环境。...这里边有windows版本和linux还有macos版本的,你可以根据你自己的环境下载相应的版本。...在JRuby运行Swing 在上面的例子运行成功后,我们接下来运行swing的例子,在sample目录下新建文件swing2.rb,输入如下内容: 1 # Import Java packages
另外,当包名为空时(即代码不包含package语句),称类所在包为默认包 例如,以下代码的全限定类名为:“com.gzn.demo.HelloWorld” // 文件名HelloWorld.java...在Windows操作系统的命令行下,运行Java代码的语法格式为,注意,此时java命令位于目录com的上一级目录(一般为项目的目录名);类名不能包含扩展名.class: Java 全限定类名 例如...当你在命令行下运行java命令时,如果没有指定-classpath参数,那么默认使用环境变量中设置的ClASSPATH。...可能出错情况三 :存在依赖外部jar包时,命令行运行java命令,classpath参数中只是添加了外部jar包路径,没有添加当前目录“.”,导致要运行的类文件找不到。...虚拟机类加载器加载类的路径只能在classpath类加载路径指明的位置中查找,如果路径中没有添加当前目录“.”,也就是当前要运行的类所在位置没有添加到类加载路径中,显然会查找不到类。
一、IntelliJ IDEA 乱码问题 在 IntelliJ IDEA 中开发 AWT / Swing 图形界面程序 , 经常遇到乱码问题 ; 文件编码问题: Java源代码或配置文件的编码格式与程序实际运行环境的编码格式不一致...解决方法是将Java源代码和配置文件的编码格式与实际运行环境一致,通常建议使用UTF-8编码。..., 勾选 " Add VM options " 选项 , 在 " Add VM options " 选项配置框中 , 配置 -Dfile.encoding=GBK 参数 , 即可在 Windows 中运行...; 如果在 Linux / Mac 中运行 , 将其配置为 -Dfile.encoding=UTF-8 参数即可 ; 上述配置 , 在 Windows 中运行 Java 程序是正常的 , AWT 图形界面显示正常中文...; 但是在 IntelliJ IDAE 中的命令行中显示乱码 ; 设置 -Dfile.encoding=UTF-8 运行参数 , 在 IntelliJ IDAE 中的命令行中 显示正常 , 在 AWT
在Java 程序设计中,可通过三种途径实现 GUI:调用Java提供的相关类和接口编写代码,使用配置文件(譬如 XML 配置文件),借助可视化编辑环境(如 Window Builder)。...AWT在实际的运行过程中需要调用所在平台的图形系统,并且受其影响而在不同平台下呈现出不同的外观。例如,同样的代码运行在 Windows 平台下,或者 UNIX 平台下,显示结果存在差异。...Swing 以AWT 为基础,在保留 AWT 所有功能的同时,进一步对 AWT的功能进行扩展。Swing组件的实现使用的是百分之百的Java代码,且不需调用平台的图形系统。...AWT是窗口框架,它从不同平台的窗口系统中抽取出共同组件 , 当程序运行时,将这些组件的创建和动作委托给程序所在的运行平台 。...使用AWT创建的图形界面应用和所在的运行平台有相同的界面风格 , 比如在 Windows 操作系统上,它就表现出 Windows 风格 ; 在 UNIX 操作系统上,它就表现出UNIX 风格 。
9、Java 中怎么获取一份线程 dump 文件? 10、Swing 是线程安全的? 11、什么是线程局部变量? 12、用 wait-notify 写一段代码来解决生产者-消费者问题?...我们为什么要使用它? Busy spin 是一种在不释放 CPU 的基础上等待事件的技术。它经常用于避免丢失 CPU 缓存中的数据(如果线程先暂停,之后在其他 CPU 上运行就会丢失)。...在 Windows 下,你可以按下 Ctrl + Break 来获取。这样 JVM 就会将线程的 dump 文件打印到标准输出或错误文件中,它可能打印在控制台或者日志文件中,具体位置依赖应用的配置。...这就是为什么 Swing供 invokeAndWait() 和 invokeLater() 方法来获取其他线程的 GUI 更新请求。...虽然两者都是用来暂停当前运行的线程,但是 sleep() 实际上只是短暂停顿,因为它不会释放锁,而 wait() 意味着条件等待,这就是为什么该方法要释放锁,因为只有这样,其他等待的线程才能在满足条件时获取到该锁
鉴于 Swing 是 Java GUI 的一个库,而 Java 本身就是一门很吃内存的编程语言,虽然可以充分利用 Java 跨平台的特性,这也是这些 IDE 在 macOS、Windows 和 Linux...4.禁止源代码本地复制。5.用户硬件约束。6.瘦客户端。7.需要在 Windows 机器甚至是 ChromeOS 等非传统操作系统上的 GNU/Linux 环境中运行 IDE。...浏览器访问的一些缺点 虽然通过官方 App 使用 Projector 很方便,但说到底我还是要下载一个应用程序,既然都这样了,和 VSCode Remote 也没什么区别,我为什么不直接使用浏览器访问呢...2.一些快捷键会被浏览器拦截,例如,Windows/Linux 中的 Ctrl+Q 或 Mac 中的 Cmd+N 是由浏览器处理的。这可能会导致你在使用 Projector 无法使用一些快捷键。...这时候,我们可以头脑风暴一下,既然 VSCode 基于的 Electron 技术本质上是让运行在浏览器中的网页可以顺畅的运行在桌面端,那么是不是可以进行一个“逆向”,将运行在桌面的 VSCode 反向运行在浏览器中呢
事例中有代码。 弹出菜单 弹出菜单是一种不固定在菜单栏中,但是可随处浮动的菜单。创建弹出菜单的方式同创建常规菜单非常相似,但是弹出菜单没有标题。...在Windows中,弹出出发器通常是鼠标右键。下面是用户点击弹出触发 器弹出菜单的步骤: 安装一个鼠标监听器。...,newIngeger('T')); 你只能在菜单项的构造器中设定快捷键字母,而在菜单的构造器中则不行。...当然,我们可以使用JMenu.remove方法把此项从菜单中删除,但是这样用户会疑问为什么菜单内容会发生改变。取而代之的是,把此菜单项设为禁用状态会更好。一个禁用的菜单项呈现灰色,并且它不能被选择。...本模块分析了JApplet如何运行,如何被装载到浏览器中,以及它是如何编写的。 JApplet的安全性 由于通过网络装载,Applet的代码具有一种内在的危险性。
最近利用空闲时间自己琢磨了一下java swing 编程,其实在从事javaweb之前我一直向往的就是java swing 开发,不知道为什么可能当时觉得Windows上的exe程序很是神奇,关于windows...上制作exe我之前也有介绍java swing开发都是自己琢磨的,有的地方写的不规范,不过大多都是网上借鉴的,应该不算离谱的。...java swing数据都是放在TableModel上的。...2、先将JTable加入jscrollpane(滚动条)中,然后在将滚动条加入到对应的控件中(Jpanel或者是Jframe).java swing 开发中加入滚动条是很常见的操作,所以这种方式的加入表格还是很推荐的...JTable数据显示java swing中jtable是mvc形式的,所以jtable仅仅是数据的显示,而真正和数据绑定的却是TableModel这个接口,我们先看看这个接口的内部有哪些方法,这样我们心里才有个底
有经验程序员的 Java 面试题 8)什么是 Busy spin?我们为什么要使用它? Busy spin 是一种在不释放 CPU 的基础上等待事件的技术。...这就是为什么 Swing 提供 invokeAndWait() 和 invokeLater() 方法来获取其他线程的 GUI 更新请求。...虽然两者都是用来暂停当前运行的线程,但是 sleep() 实际上只是短暂停顿,因为它不会释放锁,而 wait() 意味着条件等待,这就是为什么该方法要释放锁,因为只有这样,其他等待的线程才能在满足条件时获取到该锁...java.lang.Cloneable 是一个标示性接口,不包含任何方法,clone 方法在 object 类中定义。...JRE 代表 Java 运行时(Java run-time),是运行 Java 应用所必须的。
java作为一个跨平台的程序语言,虽说给程序员带来了方便,但是还是苦了用户。因为运行java程序需要装java虚拟机,版本如果不对还容易启动不来。 ...下面是一个简单的使用swing库的界面程序,保存为test_2ButtonChange.java import javax.swing.*; import java.awt.*; import java.awt.event...4.验证.jar文件是否能打开:直接双击app.jar,或使用命令行java -jar app.jar ? (直接双击) ?...生成了一个jar文件,效果和命令行的类似。 现在,只要有java虚拟机(JRE),在任何平台都可以运行这个jar,这就是java语言的优势之处。...下次我会讲一下怎样把这个jar再打包成exe文件,毕竟在windows系统下可执行文件最好还是exe,这样更加方便用户使用。
领取专属 10元无门槛券
手把手带您无忧上云