2012年7月28日土曜日

実行可能JARファイルの作り方

eclipseでも簡単にできますが、手動でやる方法

まずディレクトリMETA-INFを作成し、その中にMANIFEST.MFを作成します
MANIFEST.MFの中身は
Manifest-Version: 1.0
Class-Path: .
Main-Class: メインクラスのクラス(例:main.class)

META-INFとメインクラスやその他をコンパイルしたものをzipに圧縮します。

拡張子をzipからjarに変えればそのまま使用できます。

2012年7月27日金曜日

HTMLの取得に奮闘 - 1

世の中には、ネットで小説などを公開しているところがありまして

その中の小説家になろうというWebサイトではかなりの数の小説が公開をしています。

しかし、ブラウザで閲覧するには少しつらいというデメリットがありそれをどうにかして

ローカルに保存なりして専用ビュアーなりで読もうと思いました。

言語:Java

参考にさせていただいた、サイト様一覧
WebLab.ota様
核となるJavaでHTMLのソースを取得するのに参考にさせていただきました。
ほとんど、コピーしてしまったのですが、一部変更させていただきました。

変更点、Getter5クラスのフィールドにある

private String charset = "Shift_JIS";

private String charset = "UTF-8";
文字コードを変更しないと文字化けを起こしてしまいます。
また少し追加もさせていただきました。
Getter5クラスのフィールドに文章の始まりフラグと、この手の小説にありがちな過剰な改行避けです。
private int textFlag = 0;// 文章フラグ
private int enterCount = 0;// 改行をカウントして2回目の改行はパス
また、Getter5クラスのtryの中にある
while ((line = br.readLine()) != null) {
                htmlArea.append(line + "\n");
            }

while ((line = br.readLine()) != null) {
    // 改行文字だけなら\nに変換
    //brをbrに変えてくださいhtmlの都合上こう書きました
    if ("<br />".equalsIgnoreCase(line)) {
     line = "\n";
     enterCount++;
    }
    else{
     enterCount=0;//改行カウントを0
    }
    //改行が多すぎるのでenterCount導入
    if (enterCount < 2) {
     // 文章が始まった
     if (line.contains("<div class=\"novel_subtitle\">"))
     textFlag = 1;
     // 文末
     if (line.contains("<!--novel_color-->"))
      textFlag = 0;
     line.trim();
     //末尾の<br />を取り除く
     //brをbrに変えてくださいhtmlの都合上こう書きました
     line=line.replaceAll("<br />","\n");
     // 文章を追加
     if (textFlag == 1)
      htmlArea.append(line);
     
    }
上記のはbr /を\nに変えて、改行カウントをインクリメントします。
そうしたら、改行のみの文字列が2回以上なければ文字列を追加します。
追加する条件としてtextFlagが1の時に追加します。

textFlagを1にするには"<div class=\"novel_subtitle\">を含んだ文字列を読み込みます
またフラグを下げるには<!--novel_color-->を含んだ文字列を読み込みます
また、なんこかいらないものがあるので

string.replaceAll()で置換して消してください。
その他に参考にさせていただいたサイト様url
http://www29.atwiki.jp/suffix/pages/149.html
http://sasuke.main.jp/javatikan.html

記事の内容が不適切、または消去、訂正を希望されましたら、コメント欄への書き込みをお願いいたします。

2012年7月16日月曜日

ロシアのクラッカー恐ろしあ


つい先日に、AppStoreをエミュレーションしたサーバをたててアプリ内課金をしないでも

課金商品を入手できるという報告がありましたね。

ソース:http://9to5mac.com/2012/07/13/apples-in-app-purchasing-process-circumvented-by-russian-hacker/

この事件はクラッカーたちがiPhoneユーザが増加しているので、MacやiPhoneなどの製品へ狙いを定めて来ていると感じられます。

いままでは、Macは特定のユーザにしか使われていなかったので、Windowsに比べてウイルスなどが少なかったのですが、

iPhoneが爆発的に普及して、これからMacを使用する人が増えてくると予想され、クラッカーが標的にし出したのでしょう。

今まではノーガード戦法だった人でもセキュリティに関心を示した方がよいでしょう。

また、iPhoneなどのスマートフォンでもセキュリティ意識を高めた方がよいでしょう。

推奨するわけでありませんが、脱獄やroot化などをして、パスワードを書き換えた方が安全な場合もあります。

コードのハイライト

を付けてみたのでそのテスト



始めはコードの書き方

<!-- code -->

Javaの表示テスト
public class Practice {
        public static void main(String[] args) {
                System.out.print("Test!!!!");
        }
 
}

利用したサイト様

まだなにも

書くことを決めていないが、何かプログラミングをするさいに調べたことをメモしていこうかと思います。