LibreOffice(17)setsdkenv_windows.bat

前の関連記事:LibreOffice(16)LibreOffice 4.1 SDKをインストール


LibreOffice 4.1 SDKのインストールの最後にsetsdkenv_windows.batを実行してSDKの環境設定用バッチファイルsetsdkenv_windows.batを作成します。
(H25.2.20追記。Windows7 64bitではJavaのbootstrap()は動かないようでJavaの例はソケット接続に修正しないと動きません。詳しくはLibreOffice(27)Java-UNO Bootstrapはやめてソケット接続を使おうへ。)

setsdkenv_windows.batは隠しフォルダに作成される


C:\Program Files (x86)\LibreOffice 4\sdkにあるsetsdkenv_windows.batをダブルクリックします。

いろいろな質問に答えないといけません。

すべての質問に回答するとWindwos7 64bitでは以下のフォルダにsetsdkenv_windows.batが作成されていました。

C:\Users\<username>\AppData\Roaming\libreoffice4.1_sdk

AppData以下は隠しフォルダになっていますので表示をさせるにはエクスプローラのメニューから、ツール→フォルダーオブション→表示→隠しファイル、隠しフォルダー、または隠しドライブを表示する、を選択してOKとすると表示されます。

ここにsetsdkenv_windows.batがあるとC:\Program Files (x86)\LibreOffice 4\sdkにあるsetsdkenv_windows.batをダブルクリックしてもすぐコマンド窓が消えてしまって再設定できません。

これらは同じファイル名ですが内容は異なります。

C:\Users\<username>\AppData\Roaming\libreoffice4.1_sdkにあるsetsdkenv_windows.batを削除するとまた再設定できるようになります。

C:\Program Files (x86)\LibreOffice 4\sdkにあるsetsdkenv_windows.batをダブルクリックすると同じフォルダにあるcfgWin.jsを起動してC:\Users\<username>\AppData\Roaming\libreoffice4.1_sdksetsdkenv_windows.batを作成する仕組みです。

setsdkenv_windows.batsetsdkenv_windows.batを作るのですが中身が違うファイルが同じ名前なのでちょっと混乱しますね。

コマンドウィンドウからsetsdkenv_windows.batを実行する


setsdkenv_windows.batで作成したsetsdkenv_windows.bat(同じ名前なのでややこしいですね)をコマンドウィンドウから実行してみます。

まあまずはなにが面倒かというとC:\Users\<username>\AppData\Roaming\libreoffice4.1_sdkという隠しフォルダにあるのがアクセスにひと手間です。

そこでC:\_battestというフォルダを作ってそこにコピペします。

そのフォルダで何も選択していない状態で、Shiftキーを押しながら右クリック→コマンドウィンドウをここで開く、でこのフォルダをカレントディレクトリにしてコマンドウィンドウを開きます。

そこでsetsdkenv_windows.batと入力してEnterキーを押すと「\LibreOffice の使い方が誤っています。」と言われます。

C:\_battest>setsdkenv_windows.bat
\LibreOffice の使い方が誤っています。

これでは何が間違っているのかわからないので

setsdkenv_windows.batファイルをワードパッドのアイコンの上にドロップしてワードパッドで開きます。

一行目の@echo offの前にrem と入力してコメントアウト。

保存して再度コマンドウィンドウから開くとエラーを吐いたコマンドがわかります。

C:\_battest>REM Set library path.

C:\_battest>set LIB=C:\Program Files (x86)\LibreOffice 4\sdk\lib;
\LibreOffice の使い方が誤っています。

C:\_battest>   set LIB=C:\Program Files (x86)\LibreOffice 4\sdk\lib;;\lib

さあ何がおかしいのでしょう?

バッチファイルでパスに()とか含む時 | K blog

ここに教えていただきました。

setで指定するパスに丸カッコがあるのが原因です。

デフォルトインストールフォルダのパスにある丸カッコへの対策


(H26.2.9追記。以下の方法はうまくいきません。行き詰まります。パスを短い形式に変換するLibreOffice(18)setsdkenv_windows.batを修正するの方法で解決しました。)

仕方ないのでsetsdkenv_windows.batを修正します。
REM Set library path.
set LIB=%OO_SDK_HOME%\lib;%LIB%
if defined CPP_WINDOWS_SDK (
   set LIB=%LIB%;%CPP_WINDOWS_SDK%\lib
 )
を以下のように式ごと"でくくります。
REM Set library path.
set "LIB=%OO_SDK_HOME%\lib;%LIB%"
if defined CPP_WINDOWS_SDK (
   set "LIB=%LIB%;%CPP_WINDOWS_SDK%\lib"
 )
再度setsdkenv_windows.batを実行するとまた同じエラーがでてきます。

エラーのでるところを逐一修正します。

先に修正したところを含めて全部で4箇所修正が必要でした。

以下修正結果です。
REM Set office program path.
if defined OFFICE_HOME (
   set "OFFICE_PROGRAM_PATH=%OFFICE_HOME%\program"
 )
REM Set PATH appropriate to the output directory
if defined OO_SDK_OUT (
   set "PATH=%OO_SDK_OUT%\WINexample.out\bin;%PATH%"
 ) else (
   set "PATH=%OO_SDK_HOME%\WINexample.out\bin;%PATH%"
 )
REM Add directory of the Win SDK to the path, if necessary.
if defined CPP_WINDOWS_SDK (
   set "PATH=%CPP_WINDOWS_SDK%\bin;%PATH%"
   set "INCLUDE=%CPP_WINDOWS_SDK%\Include;%INCLUDE%"
)
これでコマンドが最後まで着ました。

C:\_battest>goto end

一行目の@echo offの前に入れたrem を削除してみて再実行してみます。

C:\_battest>setsdkenv_windows.bat
入力行が長すぎます。
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。

 ******************************************************************
 *
 * SDK environment is prepared for Windows
 *
 * SDK = C:\Program Files (x86)\LibreOffice 4\sdk
 * Office = C:\Program Files (x86)\LibreOffice 4
 * URE = C:\Program Files (x86)\LibreOffice 4\URE
 * Make = C:\mingw\bin
 * Zip = C:\mingw\bin
 * C++ Compiler = C:\Program Files (x86)\Microsoft Visual Studio 12.0\V
 * C# and VB.NET compilers = C:\Windows\Microsoft.NET\Framework64\v2.0.
 * Java = C:\Java\jdk1.7.0_17
 * Special Output directory = c:\libreoffice4.1_sdk
 * Auto deployment = YES
 *
 ******************************************************************

なんかまだエラーがでてきます。

環境変数PATH が長すぎるエラー


入力行が長すぎます。

適当えんじにあ( ´д`): 「入力行が長すぎます。」とは?

ここに教えていただきました。

環境変数PATH が長すぎるようです。

確かに@echo offをコメントアウトしてみてみるとめちゃくちゃ長いです。

このあともいろいろ小手先の対策をしてみましたがもうきりがない感じです。

参考にしたサイト


バッチファイルでパスに()とか含む時 | K blog
Program Files (x86)のカッコがだめなんです。

適当えんじにあ( ´д`): 「入力行が長すぎます。」とは?
環境変数が長くなりすぎて発生します。

次の関連記事:LibreOffice(18)setsdkenv_windows.batを修正する

PR

0 件のコメント:

コメントを投稿