• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Developing Networking Security Applications & System utilities in Java

 
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello,

I am come from C/Linux background and don't have much background in Java.I generally develop system administrator utilities like :

- disk cleanup
- retrieve lost data / files
- repairing file systems
- disk de-fragmentation

I also develop Network monitoring security applications which help admins monitor :
- their networks,
- scan incoming & outgoing data packets,
- remotely block ports / USBs
- monitor emails with attachments etc


Right now we write code in C for Linux which has to be ported to windows but such a problem wont exist in JAVA.

My questions are :

- Is JAVA the right language for writing the applications & utilities as mentioned above.

- I understand JAVA will provide Libraries and classed to access system resources / network / sockets but will JAVA abstraction be a hindrance at some stage which will restrict the flexibility which C/ C++ provide

- If for example I want to write a utility to repair a file system / or retrieve data for WINDOWS & UNIX ...will I be using same API for both OS or there are different API for different OS


Thanks in advance,

Arjun


 
Marshal
Posts: 79179
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Arjun Varma wrote: . . .
- Is JAVA the right language for writing the applications & utilities as mentioned above.
. . .

No.

Java® is designed for writing applications, not for direct memory access, so you probably will find it very difficult to write a defragger in Java®. You might be able to monitor networks with Java® code however.

And welcome to the Ranch
 
Arjun Varma
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thank you Ritchie for the warm welcome :-)

With reference to your reply in which you stated that JAVA is not meant for direct memory access. That point is well understood now. However, one more question popped up in my mind and that is as follows :

At the heart of Android is Linux with a Java abstraction layer on top of it which offers App developers various APIs including for applications which deal with file system, memory access and networks. Prime example can be an Anti virus developed for an Android mobile phone among others. Now my question is why is JAVA able work well on Android for applications which deal with memory, networks and file systems and not other wise (for desktop applications).

As a signing off comment I agree that you make Android applications in C/C++ using SDK but that's not very well supported by Google..they promote and prefer people to use Android Kit which offers JAVA APIs.

 
Campbell Ritchie
Marshal
Posts: 79179
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Don't know about Android. You may be all right with Java® (not JAVA) there.
 
author
Posts: 23951
142
jQuery Eclipse IDE Firefox Browser VI Editor C++ Chrome Java Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Arjun Varma wrote:
As a signing off comment I agree that you make Android applications in C/C++ using SDK but that's not very well supported by Google..they promote and prefer people to use Android Kit which offers JAVA APIs.



If you are coding for Android, then use the Android API. We thought that you were talking about computers/servers and *not* Android devices.


And BTW, while the Android API looks like Java, and heck, Google probably started with Java when they created it, technically, it is not really Java. It has been highly modified to do what it does.

Henry
 
Arjun Varma
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Henry ! I cited Android as an example where in you can access memory through Android APIs which I read somewhere were written in Java but I don't deal in mobile apps.

In summary this is what i understand basis the conversation we have had so far :

- Developing applications in Java which deal with memory and file system might be a problem. They might be difficult to develop and perhaps might not perform optimally

- Developing network related application such as scanners, sniffers, monitoring tools is possible and they will work optimally as they do in C /C++

- Developing cryptography applications is also possible ( I read on JavaRanch)

Is my understanding correct ?

One last question :

- while developing applications for Linux & Windows do we use different sets of API for both these OS or there is one set of APIs and the rest is taking care by the JVM of respective OS




 
Henry Wong
author
Posts: 23951
142
jQuery Eclipse IDE Firefox Browser VI Editor C++ Chrome Java Linux Windows
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Arjun Varma wrote:
while developing applications for Linux & Windows do we use different sets of API for both these OS or there is one set of APIs and the rest is taking care by the JVM of respective OS



It's the exact same API. In fact, it would be the exact same application -- as it is compiled down to byte code (a platform independent binary).

However, it is possible, that due to subtle differences, the application may work differently, so "platform independence" doesn't mean that you don't have to test on every platform (in my opinion).

Henry
 
Arjun Varma
Greenhorn
Posts: 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,

I would like to invite comments on the above questions from the larger community.

Kindly help

 
Don't get me started about those stupid light bulbs.
reply
    Bookmark Topic Watch Topic
  • New Topic