views:

176

answers:

6

I'm in a bit of an odd position. I've already decided I'm going to use Java to write a particular tool I need, and I used to know Java decently well enough to create basic applets and applications. Problem is, now that I'm revisiting it, I've forgotten a ton of what I used to know (same story with my other web technology questions).

Ugh. This'll sound dumb putting it into words so I'll just make a list:

  • Need a good, modern Java compiler and an IDE.
  • Need to know where to begin with writing my tool so it can be used in both my desktop application and a web application.
  • Might need a way within the tool itself (and this will come way later, mind you), to dynamically generate bytecode. I'm aware Java doesn't have this ability natively, but I've heard of others implementing this ability with their applications.

Edit: The 'tool' I'm referring to is just a widget that acts as a consolidated wrapper for the controls of an application that's built to use it. I plan to patent it eventually.

+3  A: 

For the IDE, check out Eclipse.

It compiles every time you save, which will point out any syntax errors you run into without you needing to manually compile. Also offers code completion (intellisense), quick fixes for common errors and refactoring tools.

RodeoClown
+1  A: 

Two libraries that let you manipulate java bytecode are BECL and ASM.

You can create a web API that could be used by both your website and your application. Just because you're making a thick client doesn't mean you have to create a byte stream protocol for it. Apache Axis is a popular tool for creating SOAP interfaces for java.

sk
+1  A: 

You can use the Java compiler that comes with Sun's Java Standard Edition SDK. There are two choices for free IDE's, Eclipse and Netbeans. IntelliJ IDEA is very good but not free.

Vincent Ramdhanie
+1  A: 

I'm an IDEA (www.jetbrains.com) fanboy, so if you've got a few bucks to pony up for a real IDE, check it out. That being said, eclipse is infinitely cheaper (hard to beat free), but there are a few annoying quirks about eclipse that I disliked.

Niniki
+1  A: 

I will try to answer the second question (as I understand it) : For your tool is to be used in both desktop and web applications, you have to separate the "model" part from the "view+controller" one. Personally, I create a separate Java module and put this as a Jar in the classpath of the application (the application project then contains only the view and controller) and is reusable whatever the application is. If the "core" functionalities are "heavy" (not sure it's the right term, excuse my english...) you can want to separate it not to penalize the application : then expose it as a RMI service is a solution (if the applications can be non-java Webservice is the alternative to RMI)

Vinze
+2  A: 

Netbeans is my personal IDE favorite. I find it to be a bit more intuitive than say, Eclipse, though they're quite similar really.

Ace