刚学Java的时候,很多jdk配置教程都要求设置JAVA_HOME、Path、CLASSPATH3个变量。而Java官网有这么一句话:jdk1.5之后的版本在安装时不用设置CLASSPATH变量。今天我就以jdk1.5为例,总结下三者的区别。
有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示:
这是个很基础的问题,但是因为基本上都是用现有的IDE工具 来开发java程序,所以很少有人意识到这一点
一、介绍 IKVM.NET是一个针对Mono和微软.net框架的java实现,其设计目的是在.NET平台上运行java程序。它包含了以下的组建: * 一个用.NET实现的java虚拟机 * 一个java类库的.NET实现 * 致力于在java和.NET之间交互的工具 二、IKVM.NET的组件 IKVM.NET包含以下的部分: * IKVM.Runtime.dll: VM运行时和所有支持代码。它包括以下的功能: Byte Code JIT 编译器和验证器: 使用JIT将Java Byte C
前面我们讨论过包,知道字节码文件最终都会被放到和包名相匹配的树状结构子目录中。例如上一节的例子:
在日常的开发中或者初学者中,都是直接使用工具进行Java的开发或学习,如eclipse,idea、myeclipse这类的开发工具,由于大部分操作都是由开发工具所完成,所以开发中并不关注classpath这个属性,日久之后就忘了这个属性到底是做什么的。
在Java中,我们经常听到classpath这个东西。网上有很多关于“如何设置classpath”的文章,但大部分设置都不靠谱。
当我们没有配置 jdk 的环境变量时,在 jdk/bin 目录外是运行不了 javac.exe (java 编译器) 和 java.exe (java 解释器) 的。
添加Main-Class属性,打开META-INF/MANIFEST.MF有如下内容:
1 File类与文件操作就 输入/输出的英文单词是Input/Output, 因此,输入/输出操作通常简称为I/O操作。Java的I/o类和接口主要包含在java.io包中(从JDK 1.4起引入了与缓冲区、通道有关的新I/O类库,它们位于Java.io包中) 。java.io包提供了通过数据流、序列化与反序列化和文件系统实现输人、输出的功能,如果程序中需要导人其中的类、接口,需要附加"import java.io.Xxx!"或"import java.io.*;”语句(Xxx是类或接口名) 由于受各种因
一. 解压安装jdk 在shell终端下进入jdk-7u79-linux-x64.bin文件所在目录, 执行命令 ./jdk-7u79-linux-x64.bin 这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车。之后会在当前目录下生成一个jdk1.7.0_29目录,你可以将它复制到 任何一个目录下。 二. 需要配置的环境变量 1. PATH环境变量。作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把 jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好 PATH变量后,就可以在任何目录下执行javac/java等工具了。 2. CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们 需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。 3. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。 三. 三种配置环境变量的方法1. 修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。 ·用文本编辑器打开/etc/profile ·在profile文件末尾加入: export JAVA_HOME=/usr/share/jdk1.7.0_29 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ·重新登录
命令行(Command Processor)(CMD)是在以OS / 2 、 Windows CE与Windows NT平台为基础的操作系统(包括Windows 2000,Windows XP,Windows Vista,Windows Server 2003,Windows 7, Windows 8 ,Windows 8.1 ,Windows 10)下的“MS-DOS 方式”,即“微软操作系统中内置的模仿DOS操作系统的程序”——我们看到的命令提示符窗口便是。而命令提示符是一种工作提示符,提示进行命令输入。例如, “C:>”这种提示的方式。
遇到的问题:使用命令行执行命令:java EightSample,会报以下错误 错误: 找不到或无法加载主类 EightSample
本部分将针对在“一”中提出的两个问题发生原因,分别进行分析及处理。并且会介绍java的一些和处理问题相关的基本概念。
官网地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html
我们一般都是通过IDE(如Eclipse、Intellij Idea,STS等)来开发,调试java项目。
-classpath: 设置用户类路径,它将覆盖CLASSPATH 环境变量中的用户类路径。若既未指定CLASSPATH 又未指定-classpath,则用户类路径由当前目录构成。 -sourcepath: 指定用以查找类或接口定义的源代码路径。与用户类路径一样,源路径项用分号 (;)进行分隔,它们可以是目录、JAR 归档文件或 ZIP 归档文件。如果使用包,那么目录或归档文件中的本地路径名必须反映包名。
之前讲了打印数据的方法:System.out.println,写这么多字有点麻烦啊。那么我们不妨创建一个StringUtil,Util是工具的意思,里面设计一个newLine方法,用于字符串的打印。
javac是用来编译.java文件的。命令行下直接输入javac可以看到大量提示信息,提示javac命令的用法,常用格式如下:
最近在写c++/c的一个小的项目,需要打成动态库,供java使用。就对java 调用c++/c代码做了简答了解,在此做记录。jni开发第一步,就是用javah命令生成生成c\c++头文件。
小小白:在使用Spring框架进行开发的过程中,需要配置很多Spring框架包的依赖,如spring-core、spring-bean、spring-context等,而这些配置通常都是重复添加的,而且需要做很多框架使用及环境参数的重复配置,如开启注解、配置日志等。Spring Boot致力于弱化这些不必要的操作,提供默认配置,当然这些默认配置是可以按需修改的,快速搭建、开发和运行Spring应用。
环境变量,是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows和DOS操作系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。
下载好的JDK是一个可执行安装程序,双击安装。安装路径:C:\jdk1.6.0(当然其他路径也可以)。
绝对路径:以C:/D:盘符号开头的路径,叫做绝对路径 相对路径:先指定一个工作目录,然后用 . 或者 …(这里应该是两个点,从当前目录的上级目录开始找)开头的路径,表示一个具体的文件位置,相对路径的参照点就是当前的工作目录
首先我们要用到commons-net-3.3.jar包 可以去网上下载 找不到可私信我 好了,下面直接上代码 封装了一个类出来可直接使用
到了这里,是不是开始膨胀了,想写一段代码来秀一下?好吧,满足你!国际惯例,我们写一段HelloWorld。我们在某个目录下记事本,编写一段代码如下:
一台配置了java环境变量的电脑 安装notepad++高级记事本软件(notepad++软件下载地址:https://share.weiyun.com/5Wux6dA)
目的:本人健忘,以后难免会重装系统啥的,软件卸了装是常有的事,特此写此详细教程,一是方便自己以后重装的时候可以看看;二是如果有某位初学者有幸光临,也可以给一点参照。下面我会从JDK的下载、安装、环境变量的配置和其中的一些问题进行详细说明,Let go!
微服务始终一个相对热门的话题,SpringBoot 则以其轻量级、内嵌 Web 容器、一键启动、方便调试等特点被越来越多的微服务实践者所采用。 知其然还要知其所以然,你了解 SpringBoot 中三大核心模块的实现原理吗? 三大核心模块 spring-boot-load 模块 正常情况下一个类加载器只能找到加载路径的 jar 包里当前目录或者文件类里面的 *.class 文件,SpringBoot 允许我们使用 java -jar archive.jar 运行包含嵌套依赖 jar 的 jar 或者 war
注意classpath中最前面的"."代表当前目录,表示java会在当前目录下寻找.class文件
想必大家对SimpleDateFormat并不陌生。SimpleDateFormat 是 Java 中一个非常常用的类,该类用来对日期字符串进行解析和格式化输出,但如果使用不小心会导致非常微妙和难以调试的问题,因为 DateFormat 和 SimpleDateFormat 类不都是线程安全的,在多线程环境下调用 format() 和 parse() 方法应该使用同步代码来避免问题。 最好的方法,使用ThreadLocal:
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
2、 在这个目录下创建文件test1.java、test2.java、Main.java,其内容就是上面文章内的内容
-verbose 输出有关编译器正在执行的操作的消息
项目地址:github.com/dubbo/jmeter-plugins-dubbo
松哥最近正在录制 TienChin 项目视频~采用 Spring Boot+Vue3 技术栈,里边会涉及到各种好玩的技术,小伙伴们来和松哥一起做一个完成率超 90% 的项目,戳戳戳这里-->TienChin 项目配套视频来啦。
Maven 对所有的功能都提供相对应的命令,maven 三大功能:管理依赖、构建项目、管理项目信息。管理依赖,只需要声明就可以自 动到仓库下载;管理项目信息其实就是生成一个站点文档,一个命令就可以解决。
JAR包是Java中所特有一种压缩文档,其实大家就可以把它理解为.zip包。当然也是有区别的,JAR包中有一个META-INF\MANIFEST.MF文件,当你找成JAR包时,它会自动生成。 JAR包是由JDK安装目录\bin\jar.exe命令生成的,当我们安装好JDK,设置好path路径,就可以正常使用jar.exe命令,它会用lib\tool.jar工具包中的类。这些细节就不用管它了。
Hadoop框架自身集成了很多第三方的JAR包库。Hadoop框架自身启动或者在运行用户的MapReduce等应用程序时,会优先查找Hadoop预置的JAR包。这样的话,当用户的应用程序使用的第三方库已经存在于Hadoop框架的预置目录,但是两者的版本不同时,Hadoop会优先为应用程序加载Hadoop自身预置的JAR包,这种情况的结果是往往会导致应用程序无法正常运行。
之前我们学习java时,生成的class文件都是位于当前目录中,假如出现了同名文件,则会出现文件覆盖问题,因此就需要设置不同的目录(定义包),来解决同名文件冲突问题.
byte(-128 ~ 127) short(-32768 ~ 32767) int(-2147483648 ~ 2147483647)
首先 javac 命名 JDK 提供的编译软件,对于此命令,所需的 option 如下:
打开并读取文件对于大多数编程语言来是非常常用的,由于 I/O 糟糕的设计以至于很少有人能够在不依赖其他参考代码的情况下完成打开文件的操作。
File类代表操作系统的文件对象,是用来操作操作系统中的文件对象的,例如:删除文件,获取文件信息,创建文件/文件夹。广义来说,操作系统认为文件已经包含了文件和文件夹的概念
和文件存储比较起来,一般用户更关心的是文件系统的目录结构。本文介绍获取和表示目录结构的方法。先看演示视频:
找出已经删除但磁盘空间未释放的文件,如果文件已经删除,但实际的磁盘空间未释放,这个时候文件句柄 fd 相关信息还在内存中,可以通过 lsof 命令找出,比如打开文件的pid和读写文件的系统fd。
网址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
对于学Java的人来说,成功配置环境变量是第一步,因为后期不论 你做什么工作,会发现都需要这些,接下来介绍如何安装与配置,我按照jdk1.6来说明,其他一致。
public static void main(String[] args) {
领取专属 10元无门槛券
手把手带您无忧上云