目录0. 综述1. 简明Git教程(我该如何push我的实验?)1.1建立本地仓库和远程仓库的连接1.1.1基于http/https协议1.1.2基于ssh协议1.2提交至本地仓库1.3提交至远程仓库2. Java文件目录结构概述(我该如何导入P2?)拓展:为什么要进行这样的修改?(选读)3. 在Lab1中可能用到的类、方法和机制(我该如何处理异常?)4. 参考的学习资料补充:我该在lib文件夹中放哪些文件?
0. 综述
由于HIT的Java为选修课,因此许多同学对于本次实验难以上手。于是写下这篇博客针对近期许多同学的常见问题进行统一的回答,并在文末附上本博客参考的学习资料,如果希望系统地学习一下Git和Java的话可以参考一下。
如果本文中存在任何错误,请联系我进行修改,或直接在评论中指出,我看见后会第一时间修正的。
1. 简明Git教程(我该如何push我的实验?)
Git使用总共分为3个过程:
建立本地仓库和远程仓库的连接
提交至本地仓库
提交至远程仓库
注释1:本文仅介绍本次实验需要用到的内容。更多内容,例如如何使用pull、分支应用、版本回退等,本文均不介绍。
注释2:本文提到的使用命令均是在Git Bash中输入的命令行。
1.1建立本地仓库和远程仓库的连接
本文介绍两种连接方式,个人更倾向于基于ssh协议的方法。毕竟把自己的帐号密码明文写在一个文本里总是让人觉得怪怪的。
1.1.1基于http/https协议
创建一个空文件夹
Lab1_你的学号
使用命令[ git clone
线上仓库地址 ]
线上仓库地址的获取方式
修改.git下的config文件 (.git默认是隐藏文件夹)
1.1.2基于ssh协议
使用命令[ ssh-keygen -t rsa -C
“注册邮箱” ]
1.1 然后连续按两下回车即可(不修改存储路径以及密码)
1.2 在
C:\Users\你的用户名\.ssh下的id_rsa.pub中找到自己的公钥
将公钥上传到自己的Github帐号
2.1 在Github中点击自己的
头像
2.2 选择
settings
2.3 左侧选择
SSH and GPG keys
2.4 选中右上角的
new SSH keys
2.5 把
id_rsa.pub中的内容用ctrl+A选中,然后ctrl+C复制,然后ctrl+V粘贴进去即可
在创建的空文件夹下使用命令[ git clone
线上仓库地址 ]
记得先切换成SSH
1.2提交至本地仓库
在
Lab1_你的学号文件夹下使用命令[ git add . ]
使用命令[ git commit -m “注释”]或者[ git commit ]
1.3提交至远程仓库
使用命令[ git push ]
大功告成~
2. Java文件目录结构概述(我该如何导入P2?)
下载P2这个项目
在你自己的项目的src文件夹中建立P2文件夹
把P2项目中的rules和turtle文件夹复制粘贴到刚刚建立的P2文件夹中
在Eclipse左侧右击你的项目名称,点击Refresh
调整turtle和rules中的全部java文件的文件目录结构
5.1 以TurtleSoup.java文件为例,你需要把顶部的
package turtle;修改为package P2.turtle;,然后把
import turtle.PenColor;修改为import P2.turtle.PenColor;
5.2 其它java文件同理进行修改。
拓展:为什么要进行这样的修改?(选读)
在Eclipse中,把src所在的文件夹作为根目录,所有的相对路径寻址都是从src所在的文件夹开始的。(在本次实验中,这个文件夹是Lab1_你的学号)
package …即表示把这个java放在哪一个包里,package P2.turtle表示把这个java文件放在P2.turtle包中,而每个包对应于一个目录结构,即此时的这个java文件应该在P2/turtle中存放。
同理,package P1.P2.P3.P4.ABC表示把这个java文件放在P1/P2/P3/P4/ABC中。
错误的包名 / 文件目录结构会导致编译器无法正确地找到对应的java文件,原因是显然的。
原本的P2是作为项目存在的,编译器可以直接在turtle文件夹中找到TurtleSoup.java,而在导入至你的项目后,编译器找不到turtle文件夹,事实上,你必须告诉编译器,先去P2文件夹,再去找turtle文件夹,再去找TurtleSoup文件。
对于import的修改是同理。只是
package告诉编译器把我放在哪,而import告诉编译器去哪里找我要找的“人”。
事实上,Lab1_学号/P2/turtle这个路径是不存在的,此时Eclipse会自动进入Lab1_学号/src/P2/turtle中查找。这个src可以替换成该项目中的任意一个源文件夹。
3. 在Lab1中可能用到的类、方法和机制(我该如何处理异常?)
文件的读写:Scanner、PrintWriter
数字的读入:ArrayList、String的split方法、Integer的valueOf方法、try-catch(异常捕获)
其它可能有用的数据结构(接口):Collection、Queue
我该如何使用这些类和方法?
4. 参考的学习资料
Git:Git零基础入门到实战详解
Java:《Java核心技术 卷I》
这两个资料的内容都不是很多,建议各位同学有时间的话还是能自己去系统地学习一下的。
补充:我该在lib文件夹中放哪些文件?
事实上只要你没有引用第三方的包的话,只要放你下载的JUnit的那两个.jar文件即可。(如果你的IDE自带JUnit,就把IDE里存放的JUnit对应的.jar文件复制粘贴到lib文件夹中即可)
如何判断是否为第三方包?其实只要看这个包是不是java开头的就行了。
为什么标准库的包不需要放进lib?因为标准库其实是jre的一部分,jre即Java Runtime Environment,如果一个人的电脑连jre都没装,那他的电脑无论如何是跑不起一个java程序的。
作者:神锅阿赟
lab