赞
踩
Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。
Java 可运行于多个平台,如 Windows, Mac OS 及其他多种 UNIX 版本的系统。
Java 是一门面向对象编程语言,不仅吸收了 C++ 语言的各种优点,还摒弃了 C++ 里难以理解的多继承、指针等概念。Java 不但可以用来开发网站后台、PC 客户端和 Android APP,还在数据分析、网络爬虫、云计算领域大显身手。
https://www.oracle.com/java/technologies/downloads/#java8
Java SE Development Kit 8u333 Java SE subscribers will receive JDK 8
updates until at least December of 2030.
具体中间过程就不说了,一直下一步即可,路径保持默认即可!
JAVA_HOME=C:\Program Files (x86)\Java\jdk1.8.0
JRE_HOME=C:\Program Files (x86)\Java\jre8
Path+=%JAVA_HOME%\bin;%JRE_HOME%\bin
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
这里总结了一段一键安装jdk的bat脚本代码如下:
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit chcp 65001 set jdkpath=C:\Program Files (x86)\Java\jdk1.8.0 set jdkreg=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment echo 正在安装jdk,请不要执行其他操作 rem start /WAIT C:\jdk-8u221-windows-i586.exe /qn INSTALLDIR=%jdkpath% set JAVA_HOME=%jdkpath% set PATH=%PATH%;%%JAVA_HOME%%\bin;%%JAVA_HOME%%\jre\bin set CLASSPATH=.;%%JAVA_HOME%%\lib\dt.jar;%%JAVA_HOME%%\lib\tools.jar set RegV=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment reg add "%jdkreg%" /v "JAVA_HOME" /d "%JAVA_HOME%" /f reg add "%jdkreg%" /v "Path" /t REG_EXPAND_SZ /d "%PATH%" /f reg add "%jdkreg%" /v "CLASSPATH" /d "%CLASSPATH%" /f mshta vbscript:msgbox("Java环境已成功安装!",64,"成功")(window.close) exit
java -version
javac
javaw
javaw.exe是相似的和java.exe 是一个win32的GUI应用,应用提供自己的GUI窗口,不启用控制台。
javah
功能说明:C 头文件和 Stub 文件生成器。javah 从 Java 类生成 C 头文件和 C 源文件。这些文件提供了连接胶合,使 Java 和 C 代码可进行交互。
javap
功能说明:Java 类文件解析器。
javac HelloWorld.java
java HelloWorld
javac -d bin HelloWorld.java
java -cp bin;. com.homework.HelloWorld
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World, 爱看书的小沐!");
}
}
class Animal {
void eat() {
System.out.println("animal : eat");
}
}
class Dog extends Animal {
void eat() {
System.out.println("dog : eat");
}
void eatTest() {
this.eat();
super.eat();
}
}
public class Test {
public static void main(String[] args) {
Animal a = new Animal();
a.eat();
Dog d = new Dog();
d.eat();
d.eatTest();
}
}
public class Circle{ private double radius; public Circle(){ radius = 0; } public Circle(double r){ radius = r; } public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } public double getArea() { return Math.pow(this.radius, 2)*Math.PI; }; public double getPerimeter() { return this.radius*2*Math.PI; } public static void main(String[] args) { Circle c = new Circle(1.234); System.out.println("Radius:" + c.getRadius()); System.out.println("Perimeter" + c.getPerimeter()); System.out.println("Area" + c.getArea()); } }
public class Cylinder extends Circle{ private double height; public Cylinder(double r, double h) { this.height = h; setRadius(r); } public double getVolume() { return getArea()*this.height; } public static void main(String[] args) { Cylinder c = new Cylinder(5.0, 10.0); System.out.println("Radius:" + c.getRadius()); System.out.println("Perimeter" + c.getPerimeter()); System.out.println("Area" + c.getArea()); System.out.println("Volume" + c.getVolume()); } }
运行结果如下:
package T1; public class Test { public static void main(String[] args) { Student stu = new Student("student", 100); stu.show(); Undergraduate undergraduate = new Undergraduate("Undergraduate", 20, "本科"); undergraduate.show(); } } class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getAge() { return age; } public void setAge(int age) { this.age = age; } public void show() { System.out.println("名字:" + this.name + "\t年龄:" + this.age); } } class Undergraduate extends Student { private String degree; public Undergraduate(String name, int age, String degree) { super(name, age); this.degree = degree; } public void show() { System.out.println("名字:" + super.getName() + "\t年龄:" + super.getAge() + "\t学位:" + this.degree); } }
import java.io.IOException; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; public class WebTest { public static void main(String[] args) { try { ServerSocket serverSocket = new ServerSocket(80); while (true) { Socket client = serverSocket.accept(); OutputStream clientOutStream = client.getOutputStream(); clientOutStream.write( ("HTTP/1.1 200\n" + "Content-Type: text/html\n" + "\n" + "<h1> Hello, my simple webserver!</h1><br>爱看书的小沐").getBytes() ); clientOutStream.flush(); clientOutStream.close(); } } catch (IOException e) { e.printStackTrace(); } } }
命令行编译和执行代码如下:
浏览器中运行如下:
import javax.swing.*; import java.awt.event.*; import java.awt.*; public class MainWindow{ private JFrame jf; public MainWindow() { jf=new JFrame("爱看书的小沐的第一个Java窗口"); Container con = jf.getContentPane(); con.setBackground(Color.yellow); //设置窗口背景色 jf.setBounds(50,100,500,200); //设置窗口在屏幕上的位置和大小 jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); //释放当前窗口 //1、用实现MouseListener接口实现 //jf.addMouseListener(myMouseListener); //2、用继承MouseAdapter类实现 jf.addMouseListener(myMouseAdapter); } MouseListener myMouseListener = new MouseListener() { @Override public void mouseReleased(MouseEvent e) { System.out.println("鼠标释放"); //鼠标按下后释放触发 } @Override public void mousePressed(MouseEvent e) { System.out.println("鼠标按下"); //鼠标按下时触发 } @Override public void mouseExited(MouseEvent e) { System.out.println("光标移除"); //鼠标的光标移出到组件触发 } @Override public void mouseEntered(MouseEvent e) { System.out.println("光标移动到组件"); //鼠标的光标移动到组件触发 } @Override public void mouseClicked(MouseEvent e) { System.out.println("鼠标发生过单机事件"); //鼠标发生单机事件时触发 if(e.getButton()==e.BUTTON1){ // 判断获取的按钮是否为鼠标的右击 jf.setTitle("MouseListener: " + e.getX()+","+e.getY()); // 获得鼠标点击位置的坐标并发送到标签的文字上 } } }; MouseAdapter myMouseAdapter = new MouseAdapter() { public void mouseClicked(MouseEvent e) { //System.out.println("鼠标点击了"); jf.setTitle("MouseAdapter: " + e.getX()+","+e.getY()); } }; public static void main(String[] args) { new MainWindow(); } }
import javax.swing.*; import java.awt.*; import java.awt.event.*; class ImagePanel extends JPanel { Image image; public ImagePanel() { image = Toolkit.getDefaultToolkit().createImage("d:/test/test.gif"); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); if (image != null) { g.drawImage(image, 0, 0, this); } } } public class Main { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { //myPanel1 JButton button1 = new JButton("显示滚动条"); JButton button2 = new JButton("隐藏滚动条"); JButton button3 = new JButton("退出"); JPanel myPanel1 = new JPanel(); myPanel1.setLayout(new GridLayout(3,1,5,5)); myPanel1.add(button1); myPanel1.add(button2); myPanel1.add(button3); //myPanel2 JPanel myPanel2 = new ImagePanel(); //splitPane JSplitPane splitPane = new JSplitPane(); splitPane.setLeftComponent(myPanel1); splitPane.setRightComponent(myPanel2); splitPane.setDividerSize(1); splitPane.setOneTouchExpandable(true); splitPane.setContinuousLayout(true); splitPane.setDividerLocation(150); //frame JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 400); frame.setVisible(true); frame.setContentPane(splitPane); //event button3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); } }); } }
官方网站:https://code.visualstudio.com/
(1)安装插件Extension Pack for Java
(2)安装OpenJDK 11+
(3)settings.json中添加设置如下:
"java.home": "C:\\Users\\tomcat\\Desktop\\microsoft-jdk-17.0.3-windows-x64\\jdk-17.0.3+7",
(4)重启VSCode
官方网站:https://www.jetbrains.com/idea/
作为一款基于Java的顶级IDE,IntelliJ往往被大型企业所使用。其开发环境能够提供诸如:智能源代码索引、可靠的重构、以及动态代码分析等,独特的企业级功能函数。
IntelliJ IDEA Community Edition(社区版)是一款免费的 Java IDE(集成开发环境),主要用于 Android 应用开发、Scala、Groovy、Java SE 和 Java 编程。
目前,该IDE有两种变体,分别是:免费的社区版和高级的终极版。其中,高级版本是为适应企业级需求而量身定制的。
官方网站:https://eclipse.org/
IBM于2001年末开发并发布了Eclipse。它能够提供的插件数量远超其他IDE。Eclipse通过自带的多种插件和特性函数,来加快程序的开发速度。其中,Junit、testing、MAVEN、Spring Framework和Subversion都有Eclipse对应的插件。
Eclipse 是一款主要用 Java 编写的免费 Java IDE。Eclipse 允许你创建各种跨平台的可用于手机、网络、桌面和企业领域的 Java 应用程序。通过插件,你也可以用其他编程语言开发应用程序,语言包括C、C ++、JavaScript、Perl、PHP、Prolog、Python、R、Ruby(包括 Ruby on Rails 框架),等等。
NetBeans拥有庞大的Java开发人员用户群,其中包括面向企业、嵌入式系统、Web、移动、桌面应用等领域的专业开发人员。目前,Oracle已将NetBeans作为其Java 8及更高版本的官方IDE。
1996年,NetBeans源于捷克的一个学生项目,其最初版是在2014年被发布的。由于免费且开源,因此它非常适合学生和初学者。您可以在该开发平台上找到所有主流框架的插件。其出色的功能,可被用于不同的环境与应用目的。
NetBeans是完全使用Java编写的,可以支持Windows、Mac、Oracle、Solaris和 Linux系统。该开发平台为端到端的软件开发生命周期,提供了需求分析,应用程序设计、开发、调试、分析和测试等一条龙的服务。
NetBeans IDE 既可用于 Java 开发,也支持其他语言,特别是 PHP、C/C ++,和 HTML5。
https://developer.android.google.cn/studio/
Android Studio provides the fastest tools for building apps on every type of Android device.
下面几个网站都是简易的Java运行环境,只能运行JDK自带的函数,不能导入包,更不能运行外部项目。
https://www.w3cschool.cn/tryrun/runcode?lang=java-openjdk
import java.text.SimpleDateFormat; import java.util.Date; public class Main { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public static void main(String[]args) { Main a = new Main(); a.setName("爱看书的小沐"); SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z"); Date date = new Date(System.currentTimeMillis()); String s = String.format("Hello %s!", a.getName()); System.out.println(s); System.out.println(formatter.format(date)); } }
https://c.runoob.com/compile/10/
菜鸟在线Java运行,也能运行其他主流的编程语言,如:Python、C、PHP、Node.js、C#、Ruby、Go等。
import java.util.ArrayList; public class Cat { public void eat() { System.out.println("吃鱼"); } public void work() { System.out.println("抓老鼠"); } public void speak() { ArrayList<String> sites = new ArrayList<String>(); sites.add("postman"); sites.add("swagger"); sites.add("mock"); sites.add("jmeter"); System.out.println(sites); } public static void main(String[] args) { System.out.println("Hello Cat!"); Cat cat = new Cat(); cat.eat(); cat.work(); cat.speak(); } }
import java.util.LinkedList;
public class Untitled {
public static void main(String[] args) {
LinkedList<String> sites = new LinkedList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.addFirst("Wiki");
System.out.println(sites);
System.out.println("hello 爱看书的小沐!");
}
}
支持一个文件包含多个类的定义。
class Shape { void draw() {} } class Circle extends Shape { void draw() { System.out.println("Circle.draw()"); } } class Square extends Shape { void draw() { System.out.println("Square.draw()"); } } // tip: each public class is put in its own file public class main1 { // tip: arguments are passed via the field below this editor public static void main(String[] args) { Square t = new Square(); t.draw(); System.out.println("Hello, 爱看书的小沐!"); } }
https://rextester.com/l/java_online_compiler
在线编译器rextester打开即用,不需要登陆,也不需要下载,安装,配置等。
支持一个文件包含多个类的定义。
//'main' method must be in a class 'Rextester'. //openjdk version '11.0.5' import java.util.*; import java.lang.*; abstract class Animal { abstract void eat(); } class Cat extends Animal { public void eat() { System.out.println("吃鱼"); } public void work() { System.out.println("抓老鼠"); } } class Dog extends Animal { public void eat() { System.out.println("吃骨头"); } public void work() { System.out.println("看家"); } } class Rextester { public static void main(String args[]) { System.out.println("Hello, 爱看书的小沐!"); System.out.println("来了一只小猫!"); Cat c = new Cat(); c.eat(); c.work(); System.out.println("来了一只小狗!"); Dog d = new Dog(); d.eat(); d.work(); } }
https://replit.com/@fxyublib/SlategreySlightApplescript#Main.java
支持一个文件包含多个类的定义。需要用户注册登陆
class Animal { void eat() { System.out.println("animal : eat"); } } class Dog extends Animal { void eat() { System.out.println("dog : eat"); } void eatTest() { this.eat(); // this 调用自己的方法 super.eat(); // super 调用父类方法 } } public class Main { public static void main(String[] args) { System.out.println("Hello, 爱看书的小沐 2022!"); System.out.println(""); System.out.println("Rain rain go away,"); System.out.println("Come again another day,"); System.out.println("Little Betty wants to play,"); System.out.println("Rain rain go away."); System.out.println(""); Animal a = new Animal(); a.eat(); Dog d = new Dog(); d.eatTest(); } }
支持一个文件包含多个类的定义。
/* package whatever; // don't place package name! */ import java.util.*; import java.lang.*; import java.io.*; class Animal{ public void move(){ System.out.println("动物可以移动"); } } class Dog extends Animal{ public void move(){ System.out.println("狗可以跑和走"); } } /* Name of the class has to be "Main" only if the class is public. */ class Ideone { public static void main (String[] args) throws java.lang.Exception { // your code goes here System.out.println("hello, 爱看书的小沐 2022"); System.out.println("Hickory,dickory,dock,"); System.out.println("The mouse ran up the clock,"); System.out.println("The clock struck one,"); Dog d = new Dog(); d.move(); } }
https://www.oracle.com/java/technologies/downloads/#java8-linux
将下载好的安装包上传到Linux环境中(比如WinSCP)。
cd /usr/local
输入ll查看传入Linux环境的安装包,然后使用tar命令解压该压缩包。
tar -zxvf /usr/local/jdk-8u181-linux-x64.tar.gz
可以给jdk包修改名字,使用mv命令。
mv /usr/local/jdk1.8.0_181 /usr/local/java
修改配置文件,配置环境变量,在命令行输入:
vi /etc/profile
输入“G”定位到最后一行,按“i”进入编辑模式,在最下面添加如下几行信息:
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
让配置文件生效,可以输入如下命令或者是重启系统:
source /etc/profile
重启命令:
init 6
reboot
查看安装情况:
java -version
如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;
╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地
//(ㄒoㄒ)//,就在评论处留言,作者继续改进;
o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;
(✿◡‿◡)
感谢各位童鞋们的支持!
( ´ ▽´ )ノ ( ´ ▽´)っ!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。