- 1. プログラミング勉強 1日目
- 2. Spigot 開発 初心者用メモ 第3回 マイクラ内のコマンドを受け取る
- 3. AtCoder Beginner Contest 013をやった(Java)
- 4. Spigot 開発 初心者用メモ 第2回 IntelliJ IDEA Communityによる開発環境の構築
- 5. Spigot 開発 初心者用メモ 第1回 テスト用サーバー環境の構築
- 6. Javaを利用して既存のPDFドキュメントにページ番号を追加する方法
- 7. コレクションの理解を深める
- 8. /*Java入門*/ Hello Worldをプリントすることから見るJava言語の基本特徴
- 9. 【Scala】はじめての環境構築(Mac)
- 10. Javaを使ってPDFドキュメントにテーブルを追加する方法
- 11. [Spring]メール送信機能
- 12. [Gradle]War作成時、含まれるapplication.propertiesを環境ごとに切り替える
- 13. [DDD]Apache POIでExcelドメインを作成する
- 14. AtCoder Beginner Contest 012をやった(Java)
- 15. Java Silver SE11 3章
- 16. Log4Shellに脆弱な環境をSpring Bootでつくる
- 17. 【Java】StreamAPIと拡張for文の違い・使い分け
- 18. Java SE 11 パイプでOutputStreamとInputStreamを接続する
- 19. OCIのオブジェクトストレージにJavaからファイルをアップロードする
- 20. Javaを通してWordテキストボックスを追加する方法
プログラミング勉強 1日目
プログラミング初学者です。HTMLはイメージしやすいですが、
Javaの勉強は難しいと感じています。
Spigot 開発 初心者用メモ 第3回 マイクラ内のコマンドを受け取る
# あいさつ
どうも、guy7ccです。[前回](https://qiita.com/guy7cc/items/8fffd48601021644d9a5)に続き、Spigot開発についてメモします。
環境は、**Windows10、Spigot1.18.1、JDK17.0.1、IntelliJ IDEA Community2021.3**です。## 目次
1. [テスト用サーバー環境の構築](https://qiita.com/guy7cc/items/a1615cab3a41c3f66121)
2. [IntelliJ IDEA Communityによる開発環境の構築](https://qiita.com/guy7cc/items/8fffd48601021644d9a5)
3. マイクラ内のコマンドを受け取る ←今回
4. イベントリスナで起きた事象を受け取る ←まだ書いてない
5. タスクでティック毎に処理を起こす ←まだ書いてない
6. config.ymlを駆使する ←まだ書いてない
7. (未定)# 第3回 マイクラ内のコマンドを受け取る
さあ、いよいよ本
AtCoder Beginner Contest 013をやった(Java)
AtCoder Beginner Contest 013 をやった。
今年もよろしくおねがいします!
今年は頑張って緑に入りたいです!!まだ茶色にすらいないですが。。。
※C問題のちに追記予定。##[A](https://atcoder.jp/contests/abc013/tasks/abc013_1)
単純に場合分けをしてあげた。“`Java
import java.util.*;public class Main {
public static void main(String[] args) throws Exception {
// Your code here!
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
if(str.contains(“A”)){
System.out.println(1);
} else if(str.contains(“B”)){
Spigot 開発 初心者用メモ 第2回 IntelliJ IDEA Communityによる開発環境の構築
# あいさつ
どうも、guy7ccです。[前回](https://qiita.com/guy7cc/items/a1615cab3a41c3f66121)に続き、Spigot開発についてメモします。
環境は**Windows10、Spigot1.18.1、JDK17.0.1**です。## 目次
1. [テスト用サーバー環境の構築](https://qiita.com/guy7cc/items/a1615cab3a41c3f66121)
2. IntelliJ IDEA Communityによる開発環境の構築 ←今回
3. [マイクラ内のコマンドを受け取る](https://qiita.com/guy7cc/items/f4c827a6c6aaa6776e26)
4. イベントリスナで起きた事象を受け取る ←まだ書いてない
5. タスクでティック毎に処理を起こす ←まだ書いてない
6. config.ymlを駆使する ←まだ書いてない
7. (未定)# 第2回 IntelliJ IDEA Communityによる開発環境の構築
前回、サーバー環境を作ってプラグインを動か
Spigot 開発 初心者用メモ 第1回 テスト用サーバー環境の構築
# あいさつ
初めまして、guy7ccです。2ヵ月ほど前からマイクラのSpigotプラグイン開発を始めて、得た知見をメモします。プログラミングをちょっとやったことある人は、これを見れば簡単なプラグインは作れるようになると思います。作れなくても責任は負いません。
情報源となったサイトは色々貼っておきますので、詳しい理解を求めるならばそちらを参照してください。私はWindows10信者です。**Windows10使います。**
## 目次
1. テスト用サーバー環境の構築 ←今回
2. [IntelliJ IDEA Communityによる開発環境の構築](https://qiita.com/guy7cc/items/8fffd48601021644d9a5)
3. [マイクラ内のコマンドを受け取る](https://qiita.com/guy7cc/items/f4c827a6c6aaa6776e26)
4. イベントリスナで起きた事象を受け取る ←まだ書いてない
5. タスクでティック毎に処理を起こす ←まだ書いてない
6. config.ymlを駆使する ←まだ書いてな
Javaを利用して既存のPDFドキュメントにページ番号を追加する方法
##背景
PDFドキュメントは世界中に広く使われていて、毎日無数のPDFドキュメントが人々に閲覧したり、処理したりしています。しかし一部のPDFドキュメントにはページ番号がないため、ユーザーが読むのは非常に不便です。この記事では、無料のPDF JavaコンポーネントであるFree Spire.PDF for Javaを使用して既存のPDFドキュメントにページ番号を追加する方法を紹介します。##下準備
jarパッケージをインポートしますまず、Free Spire.PDF for Javaコンポーネントパッケージを**[ダウンロード](https://www.e-iceblue.com/Download/pdf-for-java-free.html)**して解凍し、次の2つの.jarファイルをlibフォルダーからJavaアプリケーションに引用します。
Spire.Pdf.jar
Spire.Common.jar
処理するドキュメントは次のとおりです。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.
コレクションの理解を深める
## ArraList
– ArraListの書き方について、下記どちらの書き方でもOK!!なのでもちろん短い方がよさそう!“`java
ArrayListlist = new ArrayList ();
ArrayListlist = new ArrayList<>();
“`– 基本データ型は格納できない 例:int
– addメソッドは第一引数にインデックスを指定して上げることができ、そうにゅうする位置を指定できる
– setメソッドは上書きできる
– containsで指定要素が含まれるか判定できる
– indexOfメソッドで指定要素が何番目にいるか判定できる
/*Java入門*/ Hello Worldをプリントすることから見るJava言語の基本特徴
# JavaでHello Worldをプリントする
ソースコード:“`Java:HelloWorld.java
public class HelloWorld { // クラス名とソースコードファイル名は同名とする
public static void main(String[] args) { // Javaはmainメソッドをプログラムの起点とする
System.out.println(“Hello World!”); // 標準出力はSystem.outで表現される
}
}
“`実行結果:
“`zsh:
% javac HelloWorld.java # クラスファイルにコンパイラ
% java HelloWorld # クラスファイルを解釈し実行
Hello World!
“`
# この例から見るJavaの基本特徴
##完全にオブジェクト指向(object-oriented)
Javaはオブジェクト指向を前提としたプログラミング言語で、手続き型プログラミング(procedural programming)をサポートしないです。
=> Javaはすべての
【Scala】はじめての環境構築(Mac)
#はじめに
こんにちは。
こちらの記事では、Scalaの環境構築を行う方法を記しています。
理解が浅い部分もあるかと思いますので、誤っている点がございましたらコメントいただけると幸いです。##やりたいこと
Scalaを使って`Hello World`を表示させる。##実装手順
* JAVA(JDK)のインストール
* sbtのインストール
* sbt consoleを起動###1. JAVA(JDK)のインストール
JAVA8 以降が必須になるので、[公式サイト](https://www.oracle.com/java/technologies/downloads/#java11-mac)にアクセスしてMacOS版のJDK`jdk~~~.dmg`をインストールする。
(バージョン8よりも古いバーションをインストールした場合、セキュリティの問題やそもそもScalaを使用できないため、[アンインストール](https://www.imymac.jp/powermymac/uninstall-java-on-mac.html)して正しいバージョンをインストールする。)下記
Javaを使ってPDFドキュメントにテーブルを追加する方法
##背景
この記事では、Javaプログラミングを介してPDFドキュメントにテーブルを追加する方法を紹介します。テーブルを追加するときに、テーブルの境界線、セルの配置、セルの背景色、セルの結合、画像の挿入、行の高さ、列の幅、フォント、フォントサイズなどの基本的な属性を設定できます。##下準備
使用ツール:Free Spire.PDF for Java(無料版)
JARファイルの取得とインポート:
公式ウェブサイトからjarファイルパッケージをダウンロードします。ダウンロードした後、ファイルを解凍し、libフォルダー内のSpire.Pdf.jarファイルをJavaプログラムにインポートします。##コード一覧
“`
import com.spire.pdf.*;
import com.spire.pdf.graphics.*;
import com.spire.pdf.grid.PdfGrid;
import java.awt.*;public class AddTable {
public static void main(String[]args){
[Spring]メール送信機能
## はじめに
`spring-boot-starter-mail`を使用して、Gmailでメールを送信できるようにしていきます
基本的に詳細はjavadocで記載しています## 環境
Java 11
Spring Boot 2.6.1
Gradle 2.24
spring-boot-starter-mail 2.6.1## 依存の追加
“`build.gradle
dependencies {
implementation group: ‘org.springframework.boot’, name: ‘spring-boot-starter-mail’, version: ‘2.6.1’
}
“`## 設定の追加
今回はGmailを使用します“`application.properties
spring.mail.default-encoding=UTF-8
spring.mail.protocol=smtp
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.usern
[Gradle]War作成時、含まれるapplication.propertiesを環境ごとに切り替える
## 環境
Java 11
Spring Boot 2.6.1
Gradle 2.24## 環境ごとにapplication.propertiesを配置
`src/main`配下に、環境毎にresourcesディレクトリを作成し、application.propertiesを配置していきます
![スクリーンショット 2021-12-29 10.08.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/539971/d1ec7c7e-a9e0-c4be-69f3-4d1cf6ec67e6.png)## build.gradleにwar作成ロジックを記載
`srcDirs “src/main/resources_$env”`で環境変数毎に作成するresourcesディレクトリを指定しますGradleは最初に`src/main/resources`ディレクトリをコピーするようなので、
↓を記載して、上書きするようにします
`duplicatesStrategy = DuplicatesStrate
[DDD]Apache POIでExcelドメインを作成する
## はじめに
DDD×Apache POI でエクセル出力ドメインを作成していきます## Apache POIとは
> Apache POI(以前はJakarta POIと呼ばれていました)はJavaアプリケーションからExcelやWordなどのMicrosoft製品のフォーマットファイルを読み書きするためのAPIです。https://www.javadrive.jp/poi/
## 環境
Java 11
Spring Boot 2.6.1
Gradle 2.24
Apache POI 4.1.2## 設定
poi-ooxmlも追加することで、 `xlsx`、`dock`といった2007形式のファイルの読み書きが可能となります。“`build.gradle
dependencies {implementation(‘org.apache.poi:poi:4.1.2’)
implementation(‘org.apache.poi:poi-ooxml:4.1.2’)}
“`## エクセルドメイン
ここからDDDの出番です
まずは、`Ex
AtCoder Beginner Contest 012をやった(Java)
AtCoder Beginner Contest 012をやった。
D問題もパッと見た感じ解けそうな気がするので、明日以降に挑戦したく。
※D問題追記予定##[A](https://atcoder.jp/contests/abc012/tasks/abc012_1)
入力された二つの値を入れ替える問題“`Java
import java.util.*;public class Main {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
int A = scan.nextInt();
int B = scan.nextInt();if(A == B){
System.out.println(A + ” ” + B);
} else {
System.out.println
Java Silver SE11 3章
# Java Silver SE11 3章
[黒本](https://www.amazon.co.jp/gp/product/4295007625/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1)をもとに学んだことをアウトプットしていきます。
主に問題を解いていて、間違えた箇所もしくは知らなかった内容になります。## インクリメント デクリメント
変数の値に1を加算、減算するための演算子。例
“`java
public class Main {public static void main(String[] args) {
int a = 3;
int b = a += 5; //1.a = a+5 2.b = a
System.out.println(a); //8
System.out.println(b); //8//コンパイルエラー intにlongを格納させようとしている
int c = 2 * 3L; //エラーint d = 10;
int e = d++ + d
Log4Shellに脆弱な環境をSpring Bootでつくる
勉強がてら、話題のLog4Shellに脆弱な環境を作ってみます。
**Log4j2のバージョン2.14.0を使っていると簡単に脆弱な環境を作れました。すぐにバージョンアップしないと危険です!**脆弱性に対するSpring公式サイトの解説
https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot
# 題材
公式の[Getting Started Guides](https://spring.io/guides)の中にある[Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/)をベースにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/43c562fd-3989-fc82-ed2d-5ae8f08426f1.png)
* GitHubからソースコードの取得
https://git
【Java】StreamAPIと拡張for文の違い・使い分け
現在、参画しているプロジェクトではjavaを用いて開発しています。
その際、StreamAPIと拡張for文を使う場面が多く、それぞれの違いや、場面によっての使い分けを例をあげてまとめてみました。#Stream API とは
Stream APIとはJava SE 8から追加されたイテレーションの拡張APIです。
ListなどのCollectionを扱う為のもので、値の集計やデータを使った処理などが出来る便利なAPIです。**基本的な流れ**
1. コレクションからstreamを取得
2. streamに対して「中間操作」を実行
3. 「終端操作」で変換したコレクションの中身に対して処理を適用###中間操作の例
| メソッド | 内容 |
|:———–|:——————————|
|filter() | ( )内の式がtrueの要素だけを集める|
|map() | 要素を変換 |
|distinct()
Java SE 11 パイプでOutputStreamとInputStreamを接続する
“`
/* インスタンス */
PipedOutputStream pipedOutputStream = new PipedOutputStream(); //パイプの送信側 上流
PipedInputStream pipedInputStream = new PipedInputStream(); //パイプの受信側 下流/* 送信側と受信側の接続 */
pipedOutputStream.connect(pipedInputStream); //connect()は送信側と受信側のどちら一方から呼び出す/* パイプへの送信 */
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(pipedOutputStream))
bufferedWriter.write(“テキスト”);
bufferedWriter.flus
OCIのオブジェクトストレージにJavaからファイルをアップロードする
OCIのAlways Freeアカウントにある10GBのオブジェクトストレージを活かしたいなーと思っていろいろググって見たもののいい感じにまとまっている資料が[これ](“https://orablogs-jp.blogspot.com/2019/01/cloud-java-controlling-your-cloud.html”)くらいだったし、探すのも大変だったので整理する意味も込めて作成。
#環境
– Ubuntu 20.04
– Visual Studio Code#下準備
– configファイルを作成する
今回使ったのは接続情報をクライアントにもたせる形式なので、configファイルを作成する。
この辺を参考に設定。[Oracleの公式資料]
(“https://docs.oracle.com/ja-jp/iaas/Content/API/SDKDocs/climanualinst.htm”)
[Oracle Cloud(OCI)のoci cli設定ファイルの使い方をまとめてみた](“https://qiita.com/feifo/items/29d842
Javaを通してWordテキストボックスを追加する方法
##背景
Word文書の中で、テキストボックスとは、移動することが可能で、サイズの調整も可能なテキスト、またはグラフィックコンテナというものを指します。テキストボックスにテキスト、画像、テーブル、およびその他のオブジェクトを追加できます。以下では、Javaプログラミングを使用して上記のオブジェクトをWordテキストボックスに追加する方法をご紹介致します。###使用ツール:Free Spire.Doc for Java(無料版)
**JARファイルの取得とインポート:**
公式Webサイトからjarパッケージを**[ダウンロード](https://www.e-iceblue.com/Download/doc-for-java-free.html)**します。ダウンロードした後、ファイルを解凍し、libフォルダー内のSpire.Doc.jarファイルをJavaプログラムにインポートします。(以下の画像の示すように)
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/d908482