Skip to Main Content

Java SE (Java Platform, Standard Edition)

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

problem in executing jar when the folder name has empty space

843810Jul 15 2010 — edited Jul 15 2010
Hi,
I need to run my java swing application on double clicking the jar file. It works fine when the file path has no empty spaces in the folder name. It doesnt open when the folder name has spaces in between them. Can anyone let me know how to resolve it.
String workingDir = new File("SwingApplication").getAbsolutePath(); 
String cmd = "java -jar " ++workingDir ++"/SwingApplication.jar"; 
Runtime.getRuntime().exec(cmd);
This works fine when the SwingApplication.jar is inside for eg: c://{color:#ff0000}RunApplication{color}/SwingApplication.jar
but the application doesnt open if the file path is c://{color:#0000ff}Run Application{color}/SwingApplication.jar

Comments

Sdhamoth-Oracle
Answer

OCIServerVersion() will help you to get the server version and banner.

Marked as Answer by user11763611 · Sep 27 2020
user11763611

Thanks for your quick answer!

I see there is also an OCIServerRelease() function...

Can someone explain what is done by these functions?

If internally OCI executes SQL to get the information, it will not help much.

Seb

Sdhamoth-Oracle

It won't execute that SQL.

user11763611

Understand: I am looking for the fastest solution to get the server version and session id...

If it takes a client-server round-trip it's a pity... we are already connected...

Linux strace shows some activity on the socket to the server so I suspect OCI asks the server:

write(2, ">> MARK-1\n", 10>> MARK-1

)             = 10

write(6, "\0\0\0<\6\0\0\0\0\0\21k\4\"\0\0\0\201\275\0\0\1\0\0\0\3;\5\376\377\377\377"..., 60) = 60

read(6, "\0\0\0\272\6\0\0\0\0\0\10\241\0\241Oracle Database 12"..., 8208) = 186

write(2, ">> MARK-2\n", 10>> MARK-2

:-(

Sdhamoth-Oracle

OCIServerRelease() may not make a server round trip. Please try that.

user11763611

I have already checked: The trace output I provided was produced from OCIServerRelease(), which makes a server round trip.

It is still an option for us, if it takes less time than a SELECT to execute.

Seb

user11763611

After some testing (executing 100 processes in sequence, using client/server config over TCP):

1) Regular OCIStmtPrepare + OCIStmtExecute + OCIDefineByPos +  OCIStmtFetch of SELECT to get Oracle version: 3.7 secs

2) Using OCIServerRelease(): 3.3 secs.

A little better but if all information would be available on client side after connection that would certainly be faster.

Using OCIServerRelease() simplifies the code, thought.

Seb

Sdhamoth-Oracle

Have you tried fetching the details about database using OCIDescribeAny() with type OCI_PTYPE_DATABASE?

DB Version will can be read using OCIAttrGet() API from attribute OCI_ATTR_VERSION.

user11763611

Nope, will try OCIDescribeAny(), thanks for the tip!

Seb

1 - 9
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Aug 12 2010
Added on Jul 15 2010
7 comments
1,985 views