HIT SC Lab1 小小的总结(主要是工具)

2023-11-12

Fine,自动机与软构实验轮番轰炸的一周,在自动机考完的晚上,写下这篇有关实验一的思考总结。

Git的使用

软构这门课提交实验的方式与以前的实验不一样,是使用github上传,因此git的使用就成了刚需。接下来讲一下本次实验中发现的几种上传方式。

1、命令行式(git组件)

这个就与Linux和Windows的cmd很像,通过输入内置命令来实现分布式仓库的管理。然后通过一系列git命令就可以实现对文件(夹)的管理。

下面展示一下成功的上传过程(来自实验报告):

把实验所需的文件git clone下来,clone下来的文件在当前cmd目录下

创建本地仓库,选在了GitHub桌面版默认位置(其实哪里都行只要git bash here):

(事实上后来我用的仓库不是这个,而是实验目录)

完事后把P2移入工作目录下,然后自动设置为package,把import文件头加上P2.前缀,否则会因为不是module而无法运行。

版本管理:git add * ,表示把所有文件加入管理,可以看出这里status有更新,且还没commit

Git log查看历史:

Submit阶段,在实验目录下右键git bash here

Git add .

Git commit -m “first commit”

git remote add origin https://github.com/ComputerScienceHIT/HIT-Lab1-120L020318.git

git -u push origin master

登陆后即可传输,结果如下。

MIT的实验界面要我们使用的是这种方法,我用的是https协议,并没有使用到ssh。然后讲一下这期间遇到的一些困难:

1、有一次修改报告时把副本一起传上去了,然后直接在GitHub上进行了delete操作,且并没有fetch回本地,因此之后几次push都不成功。当然更糟糕的是后面网络代理也出了问题,不得不使用git config将https和http删除重来再reset(顺序不太记得了,反正就这几个操作,至于代理怎么有问题,难道科学上网原因?),才得以修复。反正得到的教训就是一定得保持版本的一致,在push前一定要fetch/pull确保最新版本。

2、正常修改时,git push -u origin master时有时会抛出(初期,后期不会)fatal,这是把远端origin删除重新git remote add origin …即可。

2、GitHub桌面版上传

这个简单且粗暴,只需要你有科学上网的途径(doge),正常状况下在你首次登陆后,本地仓库都是默认建立在系统的“文档”的GitHub目录下,.git就是仓库的标志。当然也可以自己改,我就是改成了实验用的目录。

查看历史,自动检测changes,得到difference、一键push的功能也是非常好用。

3、idea上传

当然这个我没试过,不过貌似有学长和同学是这么干的,成功与否未知。只需要在VCS中启动git功能,在联系到GitHub账号,就可以通过右上角的箭头很轻松完成push。不过因为本身自己没试过,也是提供一种思路。

利用idea进行build

群里有大佬是用gradle,我仅仅是使用idea自带的功能构建jar文件。具体步骤也很简单(idea yyds),进入项目结构(project structure)-工件:

点击+号,选择具有依赖项的那个,然后选择主类,输出目录即可。生成后在jar所在目录下用命令行输入java -jar xxx.jar即可。此时需要注意JDK版本。值得小心的是,P1的幻方涉及到路径问题,因此得移到项目根目录下才有用。

还有一个细节,META-INF文件尽量放在不同文件夹下,否则可能主类会串。

Eclipse与IDEA的互通

Eclipse导入IDEA项目,workspace下打开eclipse,点击file-open projects from file system,出现下列界面后直接浏览文件夹就可以:

然后注意保持JDK的一致,在preference里compile等选项修改一下就可以。然后就是不要干idea里作为eclipse项目export的傻事,因为改变了文件结构从而出现一堆错误,最后发现居然什么都不管就可以。建议在GitHub或其他地方有之前正确版本的备份。

Idea导入eclipse:还是项目结构,这次选中模块,选中文件夹后作为eclipse项目导入。总之就挺简单的。。。

实验过程的一些教训:

1、Java的最大特色就是OOP,可以多学习一些库以达到事半功倍效果;

2、Java由于去年只有小学期四周有接触,基础语法并不是很熟练,得多加练习;

3、备份的重要性,玩脱了还可以救回来。

总之,实验一代码算法方面倒是没什么难度,主要就是工具的使用,将我印象深的内容都写在上面了,仅供参考。然后具体的一些操作步骤可能有误,因为是凭记忆写的,如有错误恳请指出!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HIT SC Lab1 小小的总结(主要是工具) 的相关文章

  • Java中ArrayList的交集和并集

    有什么方法可以做到这一点吗 我正在寻找 但没有找到 另一个问题 我需要这些方法 以便我可以过滤文件 有些是AND过滤器 有些是OR过滤器 就像集合论中的那样 所以我需要根据所有文件和保存这些文件的联合 相交 ArrayList 进行过滤 我
  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 在 Java 中克隆对象 [3 个问题]

    这样做会调用Asub的clone方法吗 或者Asub深度克隆是否正确 如果没有的话 有没有办法通过这种方法对Asub进行深度克隆呢 abstract class Top extends TopMost protected Object cl
  • 序列的排列?

    我有具体数量的数字 现在我想以某种方式显示这个序列的所有可能的排列 例如 如果数字数量为3 我想显示 0 0 0 0 0 1 0 0 2 0 1 0 0 1 1 0 1 2 0 2 0 0 2 1 0 2 2 1 0 0 1 0 1 1 0
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • 如何通过 javaconfig 使用 SchedulerFactoryBean.schedulerContextAsMap

    我使用 Spring 4 0 并将项目从 xml 移至 java config 除了访问 Service scheduleService 带注释的类来自QuartzJobBean executeInternal 我必须让它工作的 xml 位
  • Spring AspectJ 在双代理接口时失败:无法生成类的 CGLIB 子类

    我正在使用Spring的
  • 如何在java中将一个数组列表替换为另一个不同大小的数组列表

    我有两个大小不同的数组列表 如何从此替换 ArrayList
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 内部类的构造函数引用在运行时失败并出现VerifyError

    我正在使用 lambda 为内部类构造函数创建供应商ctx gt new SpectatorSwitcher ctx IntelliJ建议我将其更改为SpectatorSwitcher new反而 SpectatorSwitcher 是我正
  • 如何对不同的参数类型使用相同的java方法?

    我的问题 我有 2 个已定义的记录 创建对象请求 更新对象请求 必须通过实用方法进行验证 由于这两个对象具有相同的字段 因此可以对这两种类型应用相同的验证方法 现在我只是使用两种方法进行重载 但它很冗长 public record Crea
  • 如何访问JAR文件中的Maven资源? [复制]

    这个问题在这里已经有答案了 我有一个使用 Maven 构建的 Java 应用程序 我有一个资源文件夹com pkg resources 我需要从中访问文件 例如directory txt 我一直在查看各种教程和其他答案 但似乎没有一个对我有
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • 在java中为组合框分配键

    我想添加一个JComboBox在 Swing 中这很简单 但我想为组合中的每个项目分配值 我有以下代码 JComboBox jc1 new JComboBox jc1 addItem a jc1 addItem b jc1 addItem
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • Ubuntu命令介绍——echo

    echo是一个非常简单 直接的linux命令 将argument送出至标准输出 STDOUT 通常就是在显示器 monitor 上输出 为了更好的理解 不如先让我们跑一下 echo 命令好了 echo 你会发现只有一个空白行 然后又回到 s
  • k8s--基础--6.1--环境搭建--多master高可用集群

    k8s 基础 6 1 环境搭建 多master高可用集群 前提 使用root用户 1 机器 主机名 IP 说明 master1 192 168 187 154 2核4G 硬盘20G 核数最小要求是2 master2 192 168 187
  • SQLite向arm板子的移植

    SQLite向arm linux的移植 SQLite是一个开源的嵌入式关系数据库 我们用它来管理从M0端接收的数据 将检测到的仓库信息存储起来 SQLite环境的建立 首先从下载最新版本的sqlite源码包 我下载的是sqlite amal
  • mac idea 使用技巧-长期更新

    公司配发了新款Mac book pro M1 以前都是使用window 版本 切换成了mac 操作idea 很多技巧需要重新掌握 现在总结文档 idea 版本 试用版 建议大家自行购买账户 idea 在Mac 环境下游多中快捷键组合 注意事
  • 最通俗易懂的nginx

    nginx 文章目录 nginx 什么是nginx nginx配置文件 正向代理 反向代理 负载均衡 动静分离 高可用 什么是nginx Nginx是一款自由的 开源的 高性能的HTTP服务器和反向代理服务器 同时也是一个IMAP POP3
  • 【STM32】单片机启动文件分析

    启动文件 启动文件由汇编语言写成 时单片机上电之后执行的第一个文件 也就是从上电到mian函数中间的一段过程 bootloader bootloader也可以叫启动文件 每种MCU都有对应的启动文件 但开发环境往往自动完整地提供了这个启动文
  • 虚拟机nat模式网卡配置

    我们的目的是 虚拟机和主机能互ping 虚拟机可以ping外网 1 设置win10防火墙 添加入站规则 2 共享无线网卡或者有线网卡给虚拟机网卡 VMnet8 3 虚拟机虚拟网络编辑 4 修改虚拟网卡vmnet8配置 5 关闭centos防
  • 史上最全树莓派安装方法

    众所粥汁 树莓派是一个只有银行卡大小的 电脑 但很多人在安装树莓派时会有疑问 我安装的对不对 系统是正版吗 怎么会出错 等等等等问题 所以今天我就带来一个树莓派使用指南 材料有 1 树莓派3b 3b 4b 2 外壳 3 网线 可选 4 显示
  • 怎么能学会做买卖步骤是什么(想做买卖赚钱应该先从什么做起)

    如何能学会做交易 办法是什么 胜利者 有本人的战略 遵照本人的战略 比方价格入股 趋向盯梢入股 套利 缠论买卖体例之类 波折者 自我买卖 情结买卖 动静炒买炒卖股票 贪嗔痴慢疑主宰你的操纵 你必需输得起 没有人 会在看了一本简略五官科手术的
  • JetBrains IDEA 系列产品通用xx方法(license server)

    若资金允许 请点击https www jetbrains com idea buy 购买正版 谢谢合作 学生凭学生证可免费申请正版授权 创业公司可5折购买正版授权 本文适用于所有 JetBrains 系列产品 方法一 最新方法 Jet Br
  • springboot+cache缓存上

    cache内容 缓存的意义 将方法的运行结果进行缓存 以后再要相同的数据 直接从缓存中获取 不用调用方法 cacheManager管理多个Cache组件 对缓存的真正操作CRUD操作在Cache组件中 每一个缓存组件有自己唯一一个名字 几个
  • FreeRTOS入门(07):流缓冲区 & 消息缓冲区

    文章目录 目的 基础说明 流缓冲区 相关函数 使用演示 消息缓冲区 相关函数 使用演示 总结 目的 缓冲区是操作系统中常见的一种用于任务间数据传递的机制 这篇文章将对FreeRTOS中相关内容做个介绍 本文代码测试环境见前面的文章 Free
  • 百度云BOS云存储的图片如何在访问时,同时进行格式转换、缩放等处理

    前言 之前做了一个图片格式转换和压缩的服务 结果太占内存 后来查到在访问图片链接时 支持进行图片压缩和格式转换 本来想着先格式转换 压缩图片再上传到BOS 现在变成了上传后 访问时进行压缩和格式转换 想了想 因为主要目的是提高用户的图片访问
  • vue2中使用vue-quill-editor实现编辑器

    1 参考文档 开发文档 https github com surmon china vue quill editor 例子 vue quill editor Homepage Surmon s projects 中文开发文档 前言 Quil
  • [机器学习 01] 回归算法-sklearn

    机器学习 回归 1 线性回归 有一组数据 x y 找出一个线性方程 使得数据到线上的距离总和最小 距离最小化 梯度下降法 最小二乘法 对于普通最小二乘的系数估计问题 其依赖于模型各项的相互独立性 当各项是相关的 且设计矩阵的各列近似线性相关
  • syntaxerror: 'return' outside function 解决办法

    出现syntaxerror return outside function是由于python对格式要求严格的原因 多半问题是由于格式对齐导致的 根据报错提示到相应的 py文件的相应行修改缩进 只需要保持缩进为1或着2个tab即可 修改后保存
  • 01.Vite 的安装和使用

    学习要点 1 Vite 简介 2 Vite 安装 本节课我们来开始了解 Vue 官方的构建工具 Vite 以及安装方式 一 Vite 简介 1 Vite 是官方从 Vue3 开始的全新的前端构建工具 官网如下 https vitejs de
  • 2021-11-18 Android APP安装后不在桌面显示图标的一个方法

    一 有时候安装一个app 不想在桌面上显示图标 而是在其他地方调出这个程序 要想在桌面不显示图标 只需注释掉APP入口Activity中的
  • EC600 QuecPython开发环境搭建、固件下载,最方便的OpenCPU物联网4G通信解决方案

    EC600 QuecPython 官方资源汇总 开发环境搭建 1 安装windows驱动 2 验证模组的固件版本 3 烧录QuecPython固件 小试QuecPython 1 查看系统信息 2 点亮V1 2开发板上的LED D6 3 UA
  • HIT SC Lab1 小小的总结(主要是工具)

    Fine 自动机与软构实验轮番轰炸的一周 在自动机考完的晚上 写下这篇有关实验一的思考总结 Git的使用 软构这门课提交实验的方式与以前的实验不一样 是使用github上传 因此git的使用就成了刚需 接下来讲一下本次实验中发现的几种上传方