Windows

JDをどうしてもWindowsで使いたい方向けの暫定版で、Windows XP/Vista/7に対応する。JDはLinux版を中心に開発されているので、Windows版でのトラブルは対応が後手にまわる。Windows版の位置づけを理解した上でご利用願いたい。


仕様

jdのキャッシュディレクトリは、ユーザプロファイルフォルダの下にあり

(XP) C:\Documents and Settings\xxxxx\.jd\
(Vista/7) C:\Users\xxxxx\.jd\

となる。変更したい場合は、マイコンピュータのプロパティで、環境変数JD_CACHEにフルパスを指定する。キャッシュディレクトリ内のファイルはLinuxのjdと互換性がある。

Windowsでは、次の点は仕様である。

  • 多重起動・サウンド : 対応しない
  • マウスポインタの移動 : 現時点で対応していない
  • Webブラウザ設定 : パスは「"」で囲むこと
  • 「~」の形が違う:Linux互換性のため「~」はWAVE DASH (U+301C)としているが、フォントによっては上がり下がりが逆になっている

注意事項

次の問題点は偶発的なため、jdを再起動することで回避できる。またタスクバーをクリック(最小化)したり、ウインドウ切り替え(Ctrl+Tabキーなど)で一時的に復帰できる。

  • モーダルダイアログの反応不良 : 非モーダルなウインドウをクリックしても、フォアグラウンドにならない
  • 最小化復帰時のリサイズ不良 : 通常ウインドウサイズが最大化される、フォアグラウンドにならない
  • タスクバー未登録状態 : 起動直後にタスクバーに出ない場合がある
  • ポップアップ・メニューのウインドウが消える : ひとつ親のウインドウが消える

他にも、開発者が気づいていない潜在的な問題もあると考えられる。もし解決策を発見されたなら、パッチ寄稿をお願いしたい。

主な不具合と修正バージョン

  • CPU使用率が操作していなくても45%前後(AthlonXP2500+) (svn3014)
  • 埋め込み表示、ポップアップ表示などで壊れた画像を読み込むとjdがクラッシュ (svn3083)
  • 日本語パス、ユーザ名が使用できない (svn3103)
  • 「~」などの文字が投稿されない(WAVE DASH問題) (svn3166)
  • MS-Windowstテーマ以外では動作しない (svn3404)
  • JDのコマンドオプションにURLを指定して開けない (svn3412)

インストール方法 (svn3214)

jd4linux-win32の最新パッケージをダウンロードして任意のフォルダに解凍し、binフォルダにあるjd.exeを起動すればよい。

最新リリース情報

jd4linux (2.8.9-150226)2015-02-26 23:09
jd4linux-win32 (2.8.9-beta150226)2015-02-26 23:18
theme (jd_famsilk)2011-09-06 18:45

Vista/7のメニューフォント

Vista/7においてgtk2.22以降(バイナリ版では2.8.0以降)を使用した場合、システムフォントの設定がメニューなどに反映されない場合がある。JDのシステムフォントを変更したい場合は、以下のファイルを開いてfont_nameを設定するとよい。

(インストールフォルダ)\etc\gtk-2.0\gtkrc

例えばVista/7では、以下の様に設定するとよい。

style "jd-msw-systemfont"
{
  font_name = "Meiryo 9"
}
class "*" style "jd-msw-systemfont"

エラーメッセージの取得

バイナリ版JDは、Windowsのコマンドプロンプトへのエラーメッセージ出力に対応していない。コマンドプロンプトからjdを起動しても、ヘルプメッセージもエラーメッセージも表示されない。(なお、MSYSのプロンプトには表示される。)

Windowsではエラーメッセージをファイルに保存しておく、-lコマンドオプションをショートカットに設定しておくと良い。

  1. jd.exeへのショートカットを作成する
  2. ショートカットを右クリックしてプロパティを開き、ショートカットタブのリンク先のjd.exeの後に、半角スペースと-lを追加する

エラーメッセージは、jdのキャッシュディレクトリのlog\msglogファイルに追記されているので、異常な動作をしたときにエラーメッセージが出力されていないか確認できる。

推奨設定

JDがウインドウ配置を行うと、Windowsによって前回終了時の状態を元にウインドウが配置された後に、JDが強制的に移動させてしまい、操作感が悪くなるため以下の設定を推奨する。

  1. about:config(設定メニューのその他、またはアドレス欄に入力)を開く
  2. ■ウインドウ項目の自前でウインドウ配置を管理するいいえに設定する

※Windows版では、2.8.1以降でデフォルト設定をいいえに変更した。以前の設定がキャッシュフォルダに残っている場合はこの設定を行って頂きたい。


ビルド方法 (svn3412)

ビルドするためにはプログラミングに関する知識と、それなりに時間と手間がかかる。

事前インストール

gtkmmMinGW/MSYSgnutlsRegexを用意する。

パッケージ インストール先 コメント
gtkmm-win32-devel-2.16.0-4.exe C:\GTK (注1)
MinGW-5.1.6.exe C:\MinGW base utilsとMakeのみ選択 (注2)
gcc-c++-4.4.0-mingw32-bin.tar.gz
gcc-c++-4.4.0-mingw32-dll.tar.gz
gcc-core-4.4.0-mingw32-bin.tar.gz
gcc-core-4.4.0-mingw32-dll.tar.gz
gmp-4.2.4-mingw32-dll.tar.gz
libiconv-1.13-mingw32-dll-2.tar.gz
mpfr-2.4.1-mingw32-dll.tar.gz
pthreads-w32-2.8.0-mingw32-dll.tar.gz
C:\MinGW gcc-full-4.4.0パッケージでも良い (注3)
MSYS-1.0.11.exe
msysDTK-1.0.1.exe
C:\msys\1.0
crypt-1.1-1-MSYS-1.0.11-1.tar.bz2 C:\MinGW 要ヘッダ修正
gnutls-2.8.0.zip C:\MinGW exeパッケージでも良い
regex-2.7-bin.zip C:\MinGW gnuwin32版を使用

注意事項

  1. C:\Program Filesなど半角スペースを含むパスにインストールしてはならない。gtkmmのWindows版配布パッケージには、GTK+・glibmmなどが含まれているのでgtkmmだけでよい。
  2. gcc-3.4.5は-O2を指定すると不適切なWarningが出るほか、gtkmmで発生した例外を処理できないため対応できない。
  3. GCC4のCurrent Releaseはgcc-4.4.0で、例外処理モデルが従来のsjlj(setjump/longjump)からdw2(Dwarf-2)に変更になっている。libgcc_s_dw2-1.dllにリンクすることで、DLLで発生した例外をcatchできるようになった。ただし、一部のバイナリなどで互換性がなくgcc-4.4.0でgtkmmをリビルドする必要があるかもしれない。
  4. 各パッケージはより新しいバージョンが利用できるかもしれない。ただし、以下のビルド方法では正しくビルドできない可能性があるので良く確認してもらいたい。

mingw/msys/gtkmm環境設定

/etc/fstab

c:/mingw		/mingw
c:/gtk			/gtk

~/.profile

export PKG_CONFIG_PATH=/gtk/lib/pkgconfig:/mingw/lib/pkgconfig
export ACLOCAL="aclocal -I /gtk/share/aclocal"

/mingw/lib/libregex.la, libgnutls.la, libgcrypt.la
正しいlaファイルを作るより、移動するか拡張子をla_などと適当に変更してしまった方が早い。

/gtk/share/aclocal/iconv.m4
gtkmm同梱のiconvをaclocalから使うためのファイル。gtkmmには含まれないので、iconvのバージョンに適合したファイルを必要とする。gtkmmで使用されているiconvはGTK+の依存パッケージにあり、GNU libiconvのSourceパッケージに含まれている。

/mingw/include/crypt.h
MSYS用のヘッダをMinGWで使うための修正。cryptをMinGWでビルドすればMSYS(msys-1.0.dll)との依存関係が外せる。

#include <ansidecl.h>
void EXFUN(encrypt, (char *block, int edflag));
void EXFUN(setkey, (char *key));
char * EXFUN(crypt, (const char *key, const char *salt));

jdビルド

最新svnの取得にはTortoiseSVNなどを使用してチェックアウトする。ウイルスバスターやノートンなどのセキュリティソフトが働いてると、ビルド時間が倍以上かかることやパーミッションエラーなどが出ることがある。

autoreconf -i
./configure --with-sessionlib=no --with-gthread --with-native CXXFLAGS="-O2 -pipe -mthreads -fexceptions -fasynchronous-unwind-tables -I/gtk/include" LDFLAGS="-mwindows -L/gtk/lib -lz -liconv"
make
strip -s src/jd.exe -o jd.exe
  • --with-nativeなしの場合、CPUに合わせた最適化を行わない
  • -mwindowsなしの場合、jdを起動するとMSYSのウインドウも表示され、jdのメッセージが表示される

パッケージング

JDの実行に必要なファイルとディレクトリはバイナリ版JDを参考にして貰いたい。gtkmmの必要ファイルについて詳しくはgtkmmのRedistributingに記述がある。


コメント

問題点の報告はこちらかJDサポートBBSでお願い致します。

  • 報告して頂いた場合でも、対応するまでにかなりの時間がかかります。
  • Windows対応に関して、全くの無保証であるほか、サポートはありません。
  • 要望は受け付けておりません。
  • 現時点でWindows対応をしているのはweiseです。他の開発者様に対応を求めないで下さい。

コメント一覧

  • 問題点を報告して頂く場合は、OS・jd・gtkmm・glibmmのバージョン、問題点、再現方法、発生頻度を記入して下さい。
    -- weise (2009-09-27 15:02:05 JST)
: