電子書籍の厳選無料作品が豊富!

Javaで作成されたXMLをVB.net2005で読み取る際にVBでのXMLへのパス指定に関する質問です。開発環境はVisualStadio2005です。

javaで「D\Sample.xml」(適当なフォルダーに)を吐き出し。

***VB***↓

Imports System.Xml
Module Module1
Sub Main(ByVal args() As String)
'XMLファイルの読取り
Dim xmlRdr As New XmlTextReader(args(0).Trim())
xmlRdr.Read()
Console.WriteLine("タグ名:" + xmlRdr.LocalName)
Console.WriteLine("値:" + xmlRdr.ReadString())
xmlRdr.Close()
EnD Sub
End Module

プロジェクトのプロパティページのデバッグでコマンドライン引数指定で「D\Sample.xml」を指定。

しかし、読み込まれるのは\objの\Releaseと\のDebug上のxmlを読み込んでしまいます。しかも自動バックアップ?の関係で上記コードに無い作動(上記だと読み込みだけだが、先に作ったXML作成モジュールを実行してしまう)でXMLを自動作成してしまいます。


好きな場所のファイル名を指定させる方法を教えて下さい。

普段はEclipse+Javaで開発を行っていてEclipseのパス設定感覚ではうまくいかないのですか?

A 回答 (3件)

> コマンドライン引数指定は相対パスを指定するみたいなのですね。



いえ、コマンドラインで絶対パスを指定することも出来ます。

開始オプションのコマンドライン引数に「D:\Sample.xml」と書かれていれば、それは絶対パスです。

この状態でデバッグを開始すると
Sub Main(ByVal args() As String)
このメソッドの引数である args(0) には "D:\Sample.xml" という文字列が入ります。それでもなお例外が発生したのであれば、ファイルが存在しない・あるいは開けないかXmlの構造が間違っているか、のどちらかでしょう。例外が発生しているのであれば、その理由は分かると思います。

パスは相対パスであれ絶対パスであれ、単なる文字列に過ぎません。コマンドラインも単なる文字列ですから、相対・絶対の両方が指定できます。コマンドラインで与えられたパスをどう扱うかはプログラムしだいです。
誤解されているといけないので念のため。
    • good
    • 0

> 上記だと読み込みだけだが、先に作ったXML作成モジュールを実行してしまう



ご提示したSub Main()自体が実行されていないのでは?
プロジェクトのプロパティで、アプリケーションのスタートアップオブジェクトの指定が間違っていないか確認してみてください。

D\Sample.xml が D:\Sample.xml の書き間違いであれば正しく読めるはずですし、「D\Sample.xml」という相対パスが指定されているのであれば、ファイルが見つからずに例外が出るはず。

この回答への補足

>D\Sample.xml が D:\Sample.xml の書き間違いであれば正しく読めるはずですし、「D\Sample.xml」という相対パスが指定されているのであれば、ファイルが見つからずに例外が出るはず。

書き間違いでした。例外もでました。すみません。
コマンドライン引数指定は相対パスを指定するみたいなのですね。
ありがとうございます。

補足日時:2009/10/02 11:08
    • good
    • 0

相対パスで指定している以上,カレントディレクトリからの相対パスになります。


なので,特定の場所が決まっているのであれば,ちゃんと絶対パスで指定してください。
相対パスで指定する場合は,原則的にはbin\Debug\なりbin\Release\なりが基準になるので,そこからの相対パスで指定する必要があります。

この回答への補足

ありがとうございます。
絶対パスを指定しようとコマンドライン引数指定をしたのですが…

絶対パス指定するにはどうすればいいのでしょう?

補足日時:2009/10/02 11:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!