Solved

Best way to go about Win32 calls for Disk Mangament in a Java application (Similar to Rescan Disk in MyComputer->Manage->disk Management->Rescan Disks)

Posted on 2004-09-21
17
446 Views
Last Modified: 2013-12-03
I'm totally new to Windows API calls, but I need to create a Java Application that is similar to the Rescan Disk operation in Windows, MyComputer->Manage, right click Disk Managment->Rescan Disks. So basically I need to write a Java Application that will pick up on newly Mapped and Masked storage without having to shutdown the Host PC. I was wondering could anyone tell me the best way to approach to this by answering the below questions:

1) How do I call Win32 calls within my Java Application?
2) What type of Win32 calls do I have to use?
0
Comment
Question by:Dcom4CIT
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 5
  • 3
  • +3
17 Comments
 
LVL 35

Assisted Solution

by:girionis
girionis earned 50 total points
ID: 12110949
You will have to use JNI: http://java.sun.com/docs/books/tutorial/native1.1/

Otherwise, if you already know the application that does it call it by using the Runtime class:

Runtime.getRuntime().exec("<application that rescans the disk">);
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 12110965
Why would you want to write this in Java?
0
 

Author Comment

by:Dcom4CIT
ID: 12111567
Well I don't HAVE to do it in Java, but I'm more comfortable with Java. What language would you recommend? and why?
0
Salesforce Has Never Been Easier

Improve and reinforce salesforce training & adoption using WalkMe's digital adoption platform. Start saving on costly employee training by creating fast intuitive Walk-Thrus for Salesforce. Claim your Free Account Now

 
LVL 86

Expert Comment

by:CEHJ
ID: 12111581
Java has no natural interface with the OS. You would be better with a platform-specific language - VBA, Visual C++?
0
 

Author Comment

by:Dcom4CIT
ID: 12111687
I'm doing a project for my final year in College, its an Automated Storage Provisioning project. Basically when a host is deemed to require extra storage the application will configure and dynamically add EMC Symmetrix Storage to the Host in question. The Project is using EMC storage API, the version of the EMC Storage API I'm hoping to use is a Java version. After the application Maps, Masks (this will be done with EMC API) etc.. it should rescan the disks to pick up on the new storage(This will be Win32 calls).

At the moment i'm doing research to find the best way to go about it, so any ideas are greatly appreciated.
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 12111871
>>the version of the EMC Storage API I'm hoping to use is a Java version

Well i don't know this, but if it uses native code as well, that could be an argument for integrating your own native code into it with JNI
0
 

Author Comment

by:Dcom4CIT
ID: 12111984
So your saying I should program the application in Java and use the Win32 calls using the JNI?
0
 
LVL 15

Assisted Solution

by:Javatm
Javatm earned 50 total points
ID: 12113451
> So your saying I should program the application in Java and use the Win32 calls using the JNI?

Use Java as an interface, JNI as the bridge and other language (C, C++) for Specific OS task.

Hope that helps . . .
Javatm
0
 
LVL 86

Assisted Solution

by:CEHJ
CEHJ earned 200 total points
ID: 12114223
>>So your saying I should program the application in Java and use the Win32 calls using the JNI?

There are various ways you could approach this. e.g. if you have an API written in Java, to which you need to add some system functionality, depending on the proportions involved, you could supply a unified Java Facade to the various other parts of the system. e.g.

public class FileManagement {
      
      ......
      
      public void foo() {
            // Call existing api
            emc.foo();
            
      }
      
      // Call one of your JNI methods
      public int native rescanDisks();
      
      ......
      
      
}
0
 
LVL 92

Accepted Solution

by:
objects earned 200 total points
ID: 12118045
0
 
LVL 9

Expert Comment

by:doronb
ID: 12118886
Why not do it in C# where the syntax is Java-like and the whole Windows API is at your disposal?
0
 

Author Comment

by:Dcom4CIT
ID: 12131295
Does anyone know what Win32 calls I would need for this project?
0
 
LVL 92

Expert Comment

by:objects
ID: 12131308
best bet would be to ask in the windows programming ta.
0
 

Author Comment

by:Dcom4CIT
ID: 12131638
Ok Thanks
0
 
LVL 35

Expert Comment

by:girionis
ID: 12131780
:)
0
 
LVL 86

Expert Comment

by:CEHJ
ID: 12131791
8-)
0
 
LVL 92

Expert Comment

by:objects
ID: 12138599
good luck with it, let me know if you need further assistance :)
0

Featured Post

Instantly Create Instructional Tutorials

Contextual Guidance at the moment of need helps your employees adopt to new software or processes instantly. Boost knowledge retention and employee engagement step-by-step with one easy solution.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction This article is the first of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article explains our test automation goals. Then rationale is given for the tools we use to a…
In this post we will learn how to make Android Gesture Tutorial and give different functionality whenever a user Touch or Scroll android screen.
Viewers will learn about basic arrays, how to declare them, and how to use them. Introduction and definition: Declare an array and cover the syntax of declaring them: Initialize every index in the created array: Example/Features of a basic arr…
This video teaches viewers about errors in exception handling.

691 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question