nakanilog

おぼえておきたい事をざっくりとメモするブログ

try-with-resources文(try~chatchにおけるリソース解放処理の効率的な書き方)

Java SE 7 よりtry~chatchにおけるリソース解放処理を簡素に記述できるようになった。

 

<try-with-resources文を使わない場合>
FileInputStream fs = null;

try {
    fs = new FileInputStream(filePath);
    (ファイル処理)
} catch (IOException e) {
    e.printStackTrace();
} finally {
    if (fs != null) {
        try {
            fs.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

<try-with-resources文を使う場合>

try ( FileInputStream fs = new FileInputStream(filePath); ) {
    (ファイル処理)
} catch (IOException e) {
    e.printStackTrace();
}

※try()の括弧中で生成したリソースについては、処理終了時、結果にかかわらずcloseされる。

※try-with-resources文が利用できるクラスは、AutoCloseableインタフェースおよびそのサブインタフェースであるCloseableインタフェースの実装クラスに限られる。

Tomcat開発環境構築メモ

1)EclipsePleiades All in One パッケージ)のダウンロード

Pleiades 公式サイト(http://mergedoc.sourceforge.jp/

今回ダウンロードしたのは Pleiades All in One 4.7.2.v20171225(Java Windows 64bit Full Edition)

※Full Edition は JDKTomcat が同梱されている。ただしTomcatプラグインは同梱されないため別途ダウンロードする(後述)。
※今回は C:\pleiades に展開。

 

2)JDK の Path 設定

「C:\pleiades\java\8\bin」 を環境変数Pathに設定する。

 

3)EclipseJDK の設定

Eclipseを起動し、メニューバーの「ウィンドウ」→「設定」を選択。
左側の一覧から「Java」→「インストール済みのJRE」を開き、
インストール済みのJRE…ロケーション「C:\pleiades\java\8」の「java8」にチェック

 

4)Eclipse Tomcat Plugin のインストール

Eclipse Tomcat Plugin ダウンロード先(

https://sourceforge.net/projects/tomcatplugin/files/
Eclipseのメニューバーの「ヘルプ」→「新規ソフトウェアのインストール」を選択。
「追加」→「アーカイブ」でダウンロードしたzipファイルを選択し、次の画面で
Tomcat Plugin」が表示されたらチェックしてインストールし、Eclpseを再起動する。

 

5)EclipseTomcat の設定

Eclipseのメニューバーの「ウィンドウ」→「設定」を選択。
左側の一覧から「Tomcat」を選択し、以下の設定を行う。
Tomcatバージョン:「バージョン 8.x」を選択
Tomcatホーム:「C:\Pleiades\tomcat\8.0」を設定

左側の一覧から「Tomcat」→「JVM設定」を選択肢、以下の設定を行う。
JRE:「java8」を選択

 

6)パースペクティブを開く

Eclipseのメニューバーの「ウィンドウ」→「パースペクティブを開く」→「その他」で「パースペクティブを開く」を選択。
一覧から「Java EE」を選択。

ツールバー上にTomcatプラグインの「Tomcat起動、停止、再起動」のアイコンが表示される。
※「Tomcat起動」のアイコンをクリックすると、Tomcatが起動され、「http://localhost:8080/」でTomcatにアクセスできる。

バッチファイル内で日時文字列(YYYYMMDD、HHMMSS)を取得する

バッチファイル内で日付、日時を取得するには
以下の通りに記述する。

 

<バッチファイル>

@echo off
rem 現在日付(YYYYMMDD)の取得
set date_str=%date:~-10,4%%date:~-5,2%%date:~-2,2%
echo %date_str% ←確認

rem 現在時刻(HHMMSS)の取得
set time_str=%time: =0%
set time_str=%time_str:~0,2%%time_str:~3,2%%time_str:~6,2%
echo %time_str% ←確認

 

<実行結果>

C:\> datestr.bat
20171006
123456

C:\> 

PowerShellでTCPポートの確認を行う方法

telnetコマンドのないWindowsでのTCPポート確認などで使える方法。

  1. TCPクライアントオブジェクト生成(socket生成)
    PS C:\> $tc = New-Object System.Net.Sockets.tcpClient

  2. ターゲットへ接続(IP/ホスト、ポート番号)
    PS C:\> $tc.connect("192.168.0.1", 80)

  3. 状態確認(接続可能ならTrueが返る)
    PS C:\> $tc.connected
    True

  4. TCPクライアントオブジェクトの解放
    PS C:\> $tc.close()

※ポートが開いていない場合は以下の様に出力される。

PS C:\> $tc.connect("192.168.0.1", 81)
"2" 個の引数を指定して "Connect" を呼び出し中に例外が発生しました: "対象のコンピューターによって拒否されたため、接続できませんでした。 192.168.0.1:81"
発生場所 行:1 文字:12
+ $tc.connect <<<< ("192.168.0.1", 81)
+ CategoryInfo : NotSpecified: (:) []、MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

FCIV によるハッシュ値の取得

1.FCIVツールをマイクロソフト(以下のURL)よりダウンロードし、任意のパス設定済みのディレクトリに配置する。

https://support.microsoft.com/ja-jp/help/841290/availability-and-description-of-the-file-checksum-integrity-verifier-utility


2.コマンドプロンプトより実行する

> fciv -md5 xxxxxx.xxx
> fciv -sha1 xxxxxx.xxx


※実行例
> fciv -md5 xxxxxx.xxx
//
// File Checksum Integrity Verifier version 2.05.
//
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX xxxxxx.xxx

> fciv -sha1 xxxxxx.xxx
//
// File Checksum Integrity Verifier version 2.05.
//
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX xxxxxx.xxx

certutil によるハッシュ値の取得(コンテキストメニューに追加する)

<コマンドでの実行方法>

> certutil -hashfile (ファイル名) md5
> certutil -hashfile (ファイル名) sha1

※実行例

> certutil -hashfile xxxxxx.xxx md5
MD5 ハッシュ (ファイル javascript-promise-book.pdf):
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
CertUtil: -hashfile コマンドは正常に完了しました。

> certutil -hashfile xxxxxx.xxx sha1
SHA1 ハッシュ (ファイル javascript-promise-book.pdf):
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
CertUtil: -hashfile コマンドは正常に完了しました。

 

 <コンテキストメニューへの追加>

以下のレジストリファイルを作成し、ダブルクリックして登録する事で、
コンテキストメニューにそれぞれのキーの取得操作が追加される。

 ----------------------------------------------------------------------------------------------------

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\MD5]
@="MD&5を取得"

[HKEY_CLASSES_ROOT\*\shell\MD5\command]
@="cmd /c certutil -hashfile \"%1\" MD5|findstr -v \":\"|clip"

[HKEY_CLASSES_ROOT\*\shell\SHA1]
@="SHA&1を取得"

[HKEY_CLASSES_ROOT\*\shell\SHA1\command]
@="cmd /c certutil -hashfile \"%1\" SHA1|findstr -v \":\"|clip"

----------------------------------------------------------------------------------------------------

Excel の全シート名をテキストで取得する方法

※Excel2013の場合

  1. Visual Basic Editorを起動する(ALT + F11)
  2. イミディエイトウインドウ表示する(Ctrl + G)
  3. For Each i In ThisWorkbook.Sheets: debug.print i.name : next i
    と入力し、Enter で実行する。

すると、下に全シート名が出力されます。

Excelセットアップ時の初期設定メモ

※Excel2013の場合

1)起動時、シート追加時の既定テンプレートを設定する

適応させるテンプレートを作成し、以下のパスに「Book.xltx」、「Sheet.xltx」として保存する。
C:\Users\(ユーザー名)\AppData\Roaming\Microsoft\Excel\XLSTART


2)エクスプローラの新規作成メニューで、テンプレート適応済みのワークシートを作成する

テンプレートを適応させたExcelブックを作成し、以下のパスに「EXCEL12.XLSX」として保存する。
(テンプレート(.xltx)ではなく、ブック(.xlsx)であることに注意!)
C:\Windows\ShellNew

 

3)開発タブを有効にする

ファイル→オプション→リボンのユーザー設定→「開発」にチェック。

消せないフォルダを削除する方法

※対応は自己責任で。

Windows7での対応方法

f:id:nakani1210:20160620180106p:plain

C:\> takeown /r /f C:\6f8fbe17f4d2099649d91f3c950bce66

成功: ファイル (またはフォルダー): "C:\6f8fbe17f4d2099649d91f3c950bce66" は現在
ユーザー "domain\username" によって所有されています。

成功: ファイル (またはフォルダー): "C:\6f8fbe17f4d2099649d91f3c950bce66\MRT.exe"
は現在ユーザー "domain\username" によって所有されています。

C:\> icacls C:\6f8fbe17f4d2099649d91f3c950bce66 /grant Everyone:F /T
処理ファイル: C:\6f8fbe17f4d2099649d91f3c950bce66
処理ファイル: C:\6f8fbe17f4d2099649d91f3c950bce66\MRT.exe
2 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした

C:\> takeown /r /f C:\b22328f8df9fa05cc3a1d6

成功: ファイル (またはフォルダー): "C:\b22328f8df9fa05cc3a1d6" は現在ユーザー "d
onald\nakani" によって所有されています。

成功: ファイル (またはフォルダー): "C:\b22328f8df9fa05cc3a1d6\MRT.exe" は現在ユ
ーザー "domain\username" によって所有されています。

C:\> icacls C:\b22328f8df9fa05cc3a1d6 /grant Everyone:F /T
処理ファイル: C:\b22328f8df9fa05cc3a1d6
処理ファイル: C:\b22328f8df9fa05cc3a1d6\MRT.exe
2 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした

C:\> takeown /r /f C:\ed04782343e7662aa09d46213097

成功: ファイル (またはフォルダー): "C:\ed04782343e7662aa09d46213097" は現在ユー
ザー "domain\username" によって所有されています。

成功: ファイル (またはフォルダー): "C:\ed04782343e7662aa09d46213097\MRT.exe" は
現在ユーザー "domain\username" によって所有されています。

C:\> icacls C:\ed04782343e7662aa09d46213097 /grant Everyone:F /T
処理ファイル: C:\ed04782343e7662aa09d46213097
処理ファイル: C:\ed04782343e7662aa09d46213097\MRT.exe
2 個のファイルが正常に処理されました。0 個のファイルを処理できませんでした

C:\>

 

以上でフォルダに対する権限が付与され、ごみ箱に移動(削除)することが出来る。