Abel'Blog

我干了什么?究竟拿了时间换了什么?

0%

Java-GetStart

简介

在开发的时候,Java是经常需要使用的一门开发语言。Java拥有众多的工程强度的框架,能以很少的时间就能写出很棒的服务器。golang现在的发展也很好,但是短期难以撼动Java的地位。写一系列文章,来了解一些Java编程相关的知识。

环境介绍

我这里将会使用1.8.0_151。开发工具是使用的JetBrains公司的IntelliJ IdeaIdea下载地址

工具部分

JVM-http-proxy

how-do-i-set-the-proxy-to-be-used-by-the-jvm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// https://stackoverflow.com/questions/120797/how-do-i-set-the-proxy-to-be-used-by-the-jvm
System.setProperty("java.net.useSystemProxies", "true");
String url = "https://xxxxxxxx";
String param = "";
String result = "";
BufferedReader in = null;
try {
String urlNameString = url + "?" + param;
URL realUrl = new URL(urlNameString);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
System.out.println(result);
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}

Maven项目管理

maven-structure

重点可以看看里面的dependencies

1
2
3
<dependencies>
<dependency>

aliyun地址

使用指令直接安装jar包到本地

1
mvn install:install-file -Dfile=D:/taobao-sdk-java-auto-20160607.jar -DgroupId=com.ganshane.specs -DartifactId=taobao-sdk-java-auto-20160607 -Dversion=1.0.0 -Dpackaging=jar

使用JetBrains-IDEA的时候,修改了pom.xml之后,需要点击刷新

reload-all-maven

否则idea还会读取自己本地的缓存配置来加载库文件。

windows下,%userprofile%/.m2目录里面有一个setting.xml文件。可以在里面配置我们自己私有的maven库地址。这样就会去找私人的库。如果万一有些jar包无法从github上拿到,就能通过这种方式来同步jar包。

一种报错的修复: maven-default-http-blocker (http://0.0.0.0/):

https://blog.csdn.net/bufegar0/article/details/124532209

流行框架入门

spring

Spring是一种轻量级的控制反转(IOC)和面向切面编程(AOP)的容器框架,能够为企业级开发提供一站式服务。IOC(Inverse Of Control)IOC(控制反转)是Spring最重要的原理,它将创建对象的主动权交给Spring容器,Spring程序只需要进行一些配置,就可以使用不同的对象,极大的降低了代码耦合性,提高了程序的灵活性,IOC的实现原理是反射机制。

Scheduled

定时执行任务。两行代码搞定定时任务。利用注入技术,可以做一些修饰就能让其工作。

1
2
3
4
5
6
7
8
9
10
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

@EnableScheduling
@Service
public class MySchedul extends Logging {

@Scheduled(fixedDelay = 3000)
public void fixedDelayRun() {

spring-boot

小技巧

com.fasterxml.jackson.databind.ObjectMapper

这个是java里面object和json互相转换的一个库。在制作web开发的时候,经常会用到。

jackson-json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

{
"id": 123,
"name": "Pankaj",
"permanent": true,
"address": {
"street": "Albany Dr",
"city": "San Jose",
"zipcode": 95129
},
"phoneNumbers": [
123456,
987654
],
"role": "Manager",
"cities": [
"Los Angeles",
"New York"
],
"properties": {
"age": "29 years",
"salary": "1000 USD"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class Address {

private String street;
private String city;
private int zipcode;

public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public int getZipcode() {
return zipcode;
}
public void setZipcode(int zipcode) {
this.zipcode = zipcode;
}

@Override
public String toString(){
return getStreet() + ", "+getCity()+", "+getZipcode();
}
}

//create ObjectMapper instance
ObjectMapper objectMapper = new ObjectMapper();

//convert json string to object
Employee emp = objectMapper.readValue(jsonData, Employee.class);

通过命令直接安装jar

1
mvn clean install -DskipTests

启动之后报错如何处理

jvm里面增加一个选项

1
2
-Dspring.profiles.active=bkk
Unknown time-zone ID: GMTB8

能抓取更加详细的信息。
在 Ubuntu 上安装 OpenJDK 1.8.0(也就是 Java 8),可以按照以下步骤进行:

1. 更新软件包列表

首先,更新您的系统软件包列表以确保获取到最新的软件包:

1
sudo apt update

2. 安装 OpenJDK 1.8.0

使用以下命令安装 OpenJDK 1.8.0:

1
sudo apt install openjdk-8-jdk

3. 验证安装

安装完成后,可以通过以下命令验证 Java 是否安装成功,以及当前的 Java 版本:

1
java -version

输出应该类似于:
1
2
3
openjdk version "1.8.0_XXX"
OpenJDK Runtime Environment (build 1.8.0_XXX)
OpenJDK 64-Bit Server VM (build 25.XXX-bXX, mixed mode)

4. 配置默认 Java 版本(可选)

如果系统中有多个版本的 Java,可以使用 update-alternatives 命令来配置默认的 Java 版本:

1
sudo update-alternatives --config java

该命令将列出所有已安装的 Java 版本,并允许您选择默认版本。

5. 设置环境变量(可选)

如果需要在环境变量中设置 JAVA_HOME,可以编辑 /etc/environment 文件或 .bashrc 文件(针对当前用户):

1
sudo nano /etc/environment

或者:
1
nano ~/.bashrc

在文件中添加以下行:
1
2
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

保存文件并退出。然后通过以下命令使更改生效:
1
source /etc/environment

或者:
1
source ~/.bashrc

6. 验证 JAVA_HOME 变量(可选)

可以使用以下命令验证 JAVA_HOME 变量是否正确设置:

1
echo $JAVA_HOME

输出应为 /usr/lib/jvm/java-8-openjdk-amd64

完成这些步骤后,您就成功在 Ubuntu 上安装并配置了 OpenJDK 1.8.0。

参考