Jump to content

Talk:Java (programming language)

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Daimengrui (talk | contribs) at 08:22, 15 November 2007 (Influenced by Lisp and C#?). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Former featured articleJava (programming language) is a former featured article. Please see the links under Article milestones below for its original nomination page (for older articles, check the nomination archive) and why it was removed.
Main Page trophyThis article appeared on Wikipedia's Main Page as Today's featured article on December 17, 2005.
Article milestones
DateProcessResult
March 23, 2004Featured article candidatePromoted
June 24, 2005Featured article reviewKept
July 25, 2006Featured article reviewDemoted
August 8, 2006Good article nomineeNot listed
Current status: Former featured article
WikiProject iconComputer science B‑class Mid‑importance
WikiProject iconThis article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
BThis article has been rated as B-class on Wikipedia's content assessment scale.
MidThis article has been rated as Mid-importance on the project's importance scale.
Things you can help WikiProject Computer science with:

Java name

Message to Sdornan: I made the "09:09, 31 August 2007" edit to document how the final name was chosen. However I noticed you changed the meaning of the sentence when cleaning it up in one of your following edits (it originally explained that the project started in June 91, but your edit make it sounds like what happened in June 91 was the decision on the final name). I am going to change the sentence to something a bit different, if you don't mind. -- R. Duxx 76.173.67.9 06:23, 1 September 2007 (UTC)[reply]

Languages Influenced By

It is apparent that Java was influenced by the Mesa language developed by Xerox. Coder1024 03:37, 2 May 2007 (UTC)[reply]

Influenced by Lisp and C#?

216.252.85.18 added Lisp and C# to "influence by" in the info box. I've reverted those, as obviously the chronological order is incorrect for Java to be influenced by C#. While Gosling has mentioned Lisp, along with a number of other languages not listed, as a language from which lessons were taken, I think it is a stretch to include Lisp in the infobox. I consider the infobox to list the languages which had a strong influence that can be traced from the features and philosophy of the language. Otherwise you rightly might have to include every preceeding language as an influencer. I welcome any other opinions on the matter. —Doug Bell talk 04:12, 21 February 2007 (UTC)[reply]

Java is certainly influenced by C#, witness the slew of new language feature in 1.5, after C#, which was in direct competition, brought some of its own missing from Java. It'd be pretty hard to source, though... As for Lisp, I agree. -- int19h 05:51, 21 February 2007 (UTC)[reply]
Many of those relatively minor language changes have been under discussion for a long time. I don't think it's accurate to say that they were influenced by C#, but even if they were, the language itself is not, and the additions are minor. —Doug Bell talk 06:10, 21 February 2007 (UTC)[reply]
The influence by C# was already there (note that user 216.* didn't change it), and was properly sourced and explained. (Unlike the other influences, shouldn't we explain about Eiffel's and SmallTalk's influence too?) The chronological order has little to do with which language can influence which. Language gain features that existed in other languages all the time, no matter which langauge came out first. I think it's pretty obvious that Java was influenced by C#. Most of the major feature differences between C# and Java were implemented in Java 5. And that's really not a Bad Thing, if you ask me. All of the features significantly changed the language, and the standard library would probably have been designed very differently in the presence of enums, annotations, autoboxing, and even varargs. (Generics is correctly not included in the list of features, since it has a completely different origin and implementation.) Anyway, about Lisp, I don't really recognize its influence in Java. This is the first time I heard about it. - Chip Zero 09:36, 21 February 2007 (UTC)[reply]
Other than generics, the features implemented in Java 5 were primarily "syntactic sugar" in that they didn't add any functionality, only provided alternative means of writing the same thing in the source code. They really are quite minor additions to the language, nothing on the order of the inner classes. Generics had been discussed since the early days of Java, well before C# was even a rumor (it was JSR 14, submitted in 1999). Whatever "influence" C# had on Java was quite minor. You can make a case that annotations had a significant impact on the Java environment because of how they are leveraged by tools, but their impact on the language itself is minor. Besides, my take on the languages listed in the infobox is that it means "creation influenced by", although as I point out above, it wouldn't really matter if it just means "influenced by". —Doug Bell talk 09:56, 21 February 2007 (UTC)[reply]
Besides, you can't claim that varargs and enums were influenced by C#—those were features of C, and were not implemented in a similar fashion in Java as in either C or C#. —Doug Bell talk 10:10, 21 February 2007 (UTC)[reply]
Yes, most of these features are strictly syntactic sugar. But then again, most of the Java language features are syntactic sugar over the core language (such as inner classes, most control flow statements, i++, +=, ?:, ...). It's the sugar that makes the language. And don't underestimate these features, they are all powerful features for building good application frameworks (minus perhaps the enhanced for loop). Auto-boxing for example changes the way we look at collections and methods that take a Object argument. Enums give increased typesafety with the simplicity that the old integer constants used to have. Varargs allows you to write new kinds of methods, such as the new String formatting method. (Which is implemented on basis of a typesafe array, unlike in C BTW.) Yes, technically you could do these things before, but it was all so hard or inconvenient that nobody ever did it. And yes, annotation obviously go beyond syntactic sugar, and allow all kinds of funny things such as the XMLSerializer for C# illustrated. Finally, my take on "influences", is just that, other languages that had a (notable) influence on the design of the language at one point or another. The computer languages history graph illustrates this nicely. Likewise, Ruby is also stated as an influence on C# here, even if it only influenced C# 2.0. - Chip Zero 10:41, 21 February 2007 (UTC)[reply]
I still disagree with listing C# as an influence. For now, I've removed the attribution of varargs and enums from the C# reference because these were clearly features from previous lanaguages that had been discussed as additions to Java long before C#. I don't see the connection for annotations either as these had been informally done using Javadoc comments for some time prior to be adopted as a language feature. I think the connection to C# is extremely thin and certainly falls below the level of influencer. —Doug Bell talk 19:18, 25 February 2007 (UTC)[reply]
I have to agree with you about enums; they have a different functionality and implementation in the two languages (flaggable enums vs. enums with members). (Although one could argue that they'd never have been added if it wasn't for C#, since enums have been around for ages now.) Java varargs however — even though the name comes from C — work exactly the same in Java as they do in C#, albeit with a different syntax. I hate to re-iterate myself, but both are implemented using a heap-allocated typesafe array as the underlying data structure. What other statically typed languages do you know do this? - Chip Zero 15:35, 26 February 2007 (UTC)[reply]
With enums, they had been used in Java as a pattern prior to C# being a twinkle in the eye of Microsoft. (I may actually have been the first to propose this pattern in 1996.) Like many of the added language features, formallizing it in the language was the result of careful consideration. I would certainly put varargs in this category as well, although I suppose the C# implementation of the feature my have been suggestive. Java is defined as much by what features are not in the language as it is by the features that are. The only one of the added features I think likely to have been directly influenced by C# is the autoboxing/unboxing of primitive types into their corresponding primitive wrapper classes. —Doug Bell talk 16:06, 26 February 2007 (UTC)[reply]
Well the thing is, in C# enums are really just primitive types, with language and framework support (see comparison of C# and Java). This means that they can be combined using the bitwise OR (|) operator like in C++. Before Java 5, people used constant integers on interfaces as a poor man's enumeration that also supported this. And yes, Java's minimalism is (or was) part of its philosophy. Less can definitely be more, as it prevents complexity and errors. But it seems to me that times may be changing since the advent of Java 5 (and C#). It looks like they'll be introducing closures next, which is normally a good feature, but it makes inner classes somewhat redundant. (Not to mention that it means that existing libraries will then no longer be using the preferred delegation construct.) Just like enums did for the old ints-on-interfaces. What began by copying the major feature differences with C#, may turn out to be a whole new direction for Java. In that sense I am definitely convinced Java was influenced by C#. Likewise, Java's (product) open-sourcing wasn't just the new CEO and the old "Java isn't free enough for Linux" thing, it was also influenced by competition with C# on Mono (which was free enough for Linux). - Chip Zero 17:18, 26 February 2007 (UTC)[reply]
"What began by copying the major feature differences with C#". I'm not accepting this premise at all—certainly not as a motivation for the changes. And closures have been discussed since the beginning (even as part of the initial language, and again when inner classes were being added.) —Doug Bell talk 17:30, 26 February 2007 (UTC)[reply]
I ended up removing the C# "influenced by" statement, mostly on the grounds that the note attached to it offered three cites, none of which were reliable: one was a forum post and another was a personal web page, and neither of the authors seemed to be authoritative. The third cite was to a history of programming languages page whose only related cite for this information was THIS page! Keeping the "influenced by C++" statement without any useful cites didn't seem like the thing to do, given the contraversy around the topic. SlitherM 00:37, 21 March 2007 (UTC)[reply]
While I agree we shouldn't cite forum posts, I don't think there's anything wrong with the other two sources. Both were in-depth studies of the subject. The "history" page is referenced in hundreds of web pages and in several scientific publications. And I don't know if you noticed, but the other "influences" don't have any references or explanation. What was the influence of Eiffel for example? And what sources are there for that? I think you're severely exaggerating about the lack of authority of the references. Am I sensing some hostility specific against C#? I'm no fan of Microsoft and their politics either – far from it – but I think it's wrong not to list C#'s influence on Java. That it was influenced by C# doesn't make Java inferior, it just means it's keeping up with the current trends and adapting to the new market conditions. And it did just that by adding "the enhanced for loop, autoboxing, varargs and annotations". They are all features that existed before in C#, and were some of the most notable differences between the two languages. – Chip Zero 21:53, 23 March 2007 (UTC)[reply]
Thanks for pointing out that the influence of Eiffel was lacking a citation -- I just added one. As for the influence of C#, perhaps it would be best if we try not to sense hostility in each other? My position is just that the cites given don't seem to me to be reliable, and I don't see any reason to think that there should be an influence. Tackling the first point first: The "history" page that is cited, if you look at its edit history, doesn't give any attribution and, as I said before, the only reference it gives that relates to C#'s influence is THIS page, which raises the question of whether that page only claims that C# is an influence because this one does! The other cite is to a unrefereed talk by Barry Cornelius, in which he explicitly says "In my opinion, it is C# that has caused these radical changes to the Java language" (emphasis added). Therefore, I think it cannot be taken as reliable either.
As to my second point, I don't see any reason to think C# should have been an influence. JSR 201 added these features, but doesn't claim any influence. The only two non-simple features it added were enums and autoboxing. Java's enums are VERY different from C#'s, and boxing and unboxing are old ideas that have been around well before Java. For instance, Xavier Leroy's 1992 article [1]. So, without any citations in favour of an influence, why assume that there is one? SlitherM 01:49, 24 March 2007 (UTC)[reply]
I'm not sure where you see a reference to this article, but it seems that the "history" page added this influence in May 2005,[2] while this page added it in November 2006.[3] You're right about enums, we actually discussed this (see above), and removed it from the list of features. As for autoboxing, yes, "boxing" and "unboxing" are no new concepts. What Xavier Leroy describes is a way to use recursive unboxed memory allocation as an optimization for a language that normally uses fully boxed types. The novel thing about what C# and Java did is adding (non-recursive) boxing and unboxing to a language with a type system that already supports both boxed and unboxed types, thereby introducing polymorphism for the primitives. Furthermore they still require explicit use of an object type (boxed type) in methods or data structures to make use of this. So I don't think it's really the same thing, although C# autoboxing probably had a basis in this or related papers. Anyway, try a Google search for autoboxing C# java. You'll find many articles that have made the observation that Java introduced autoboxing and other features that were present in C# before. Java 5 simply added most of the major features that introduced were in C# but were not yet in Java, and implemented them in the same way, with only some superficial differences. This includes annotations, which I would definitely consider "non-simple". Just that the JSR (which didn't make the design discussion public) didn't mention the influence doesn't mean there isn't one; that's why we have to look at external observations. Anyway, good job on the Eiffel citation. (Although I'm still not exactly sure what aspects were influenced by Eiffel, but that's probably just me.) – Chip Zero 11:56, 26 March 2007 (UTC)[reply]
I'm not even sure why we even put Influenced by here in the first place, clearly intense competition for the developer's hearts and minds influenced the JCP committee to add some features found in other languages but were not there before Java 5 (Note: Sun no longer calls it 1.5 but Java 5). Certainly C# wasn't the original language to introduce generics. If you can name at least one ORIGINAL feature in the C# language that is also found in Java as of version 6 then I will agree with you, otherwise lets just delete the whole thing as the PROGRAMMERS and DEVELOPER community ultimately influence a certain language. Daimengrui 08:22, 15 November 2007 (UTC)[reply]

Compilation

The first paragraph of the article says that

Java is an object-oriented programming language developed by Sun Microsystems in the early 1990s. Java applications are compiled to bytecode, which at runtime is either interpreted or compiled to native machine code for execution.

This makes it seem that java can run by either:

  1. Interpreting bytecode at run time
  2. Compiling bytecode to native code at run time

Thus leaving out the possibility of compiling to native code ahead of time. Jorge Peixoto 02:57, 9 March 2007 (UTC)[reply]

To the best of my knowledge, an implementation directly compiling from .java files to native machine code would not be Java (since bytecode spec is also part of the standard). Otherwise, the sentence you cited does not say anything about whether bytecode should be compiled to native code at runtime or not, so ahead-of-time compilers, such as Excelsior JET, are seemingly covered by it. -- int19h 15:39, 9 March 2007 (UTC)[reply]
Actually, the Java Language Specification is a completely separate document than the Java Virtual Machine Specification. The language spec describes how the language behaves, and says nothing about how the JVM works, or how it should be compiled other than that the compiled code should work correctly. Therefore, it would be entirely legal to compile Java code to native code. I agree with Jorge Peixoto that the first paragraph is misleading. SlitherM 00:20, 21 March 2007 (UTC)[reply]
I've considered changing that statement myself. The fact is that the language and VM specs were intentionally kept at arms-length so as to allow the widest possible latitude for environments that run the Java language. There is nothing in the language spec requiring compilation to bytecode, AFAIK, and in fact, there have been a number of implementations, esp. early when performance was a bigger issue than now, that compiled directly to native code. So I would support at least a qualification to the statement. The statement also doesn't allow for the execution of the bytecode natively—there were some early stack-based Java processors that executed the bytecode directly. My recommendation would be:

Java is an object-oriented programming language developed by Sun Microsystems in the early 1990s. Java applications are typically compiled to bytecode. At runtime, bytecode is usually either interpreted or compiled to native machine code for execution, although direct hardware execution of bytecode by a Java processor is also possible.

Doug Bell talk 05:34, 21 March 2007 (UTC)[reply]
Sounds good. You should probably add something like "or native compilation using GCJ is also possible.".Chip Zero 21:56, 23 March 2007 (UTC)[reply]
OK, I changed the wording. —Doug Bell talk 22:05, 23 March 2007 (UTC)[reply]
Great, sounds much better now. – Chip Zero 11:57, 26 March 2007 (UTC)[reply]

Too heavily criticized

This is not a neutrally or fairly written article by any stretch. There is entirely too much emphasis on criticism. Since there is an entirely separate article devoted to criticism, then there should be no mention of it here. —The preceding unsigned comment was added by 65.118.4.1 (talk) 16:28, 1 May 2007 (UTC). It seems like every article on wikipedia has a criticism section. But I think that "no mention of it here" would be stupid, because it's an extension of the article. It'd be like no mention of a list of episodes on the TV show that the list of episodes is about. J'onn J'onzz 11:48, 13 June 2007 (UTC)[reply]

C# doesn't have a criticism section. And all of the criticisms about Java would apply to C# wouldn't it? I think the either Java should lose its criticism section (since most other languages don't have a criticism section). Or that the Java Criticism aricle should be changed to criticism of Java and C#. —Preceding unsigned comment added by 65.240.128.253 (talk) 17:48, 6 September 2007 (UTC)[reply]

I agree that C# should be criticized as well (if youw ant to write the article go ahead). However i dont think C# and java criticisms should be combined. While it is true that the two languages are very similar they have distinct differences in both their API and the language itself. For example delegates are unique to C# and java specifically does not include these or any concept of it. So i think the articles should stay separate, despite some overlap. - Debeo Morium: to be morally bound (Talk | Contribs) 20:09, 6 September 2007 (UTC)[reply]

Dispute with microsoft

after Sun claimed that the Microsoft implementation did not support the RMI and JNI interfaces and had added platform-specific features of their own

Was Sun's claim true? What platform-specific features? Also, encyclopaedic content must be referenced. Shinobu 20:15, 6 May 2007 (UTC)[reply]

It is more than a claim, it is the reason why a judgment prevented Microsoft to call their implementation Java. See for example this Yale University case study here. For example Microsoft made Java programs communicate through COM instead of CORBA (COM is tied to Windows). An excerpt from the referenced study: "They decided to omit the class libraries for Remote Method Invocation (RMI) and to disable generation of output for the new version of the Java Native Interface (JNI). A customer could not use RMI to communicate between Java programs on Windows and Unix. Similarly, a C language program written to extend Java would not operate correctly in the Microsoft environment". See also a synthesis of the judgment here: "The court ordered that if Microsoft ships products that include the Java technology, it must change those products within 90 days to address their failure to pass Sun's compatibility test suite". A complete list of all the proceedings (in PDF) is here Hervegirod 21:40, 6 May 2007 (UTC)[reply]


See also Visual_J++#Litigation_against_J.2B.2B . It was a subject of the 1998 DOJ antitrust trial, the 1997 trademark licensing dispute, and then Sun's private 1.6 billion dollar antitrust lawsuit against Microsoft.

Fair use rationale for Image:Duke.gif

Image:Duke.gif is being used on this article. I notice the image page specifies that the image is being used under fair use but there is no explanation or rationale as to why its use in Wikipedia articles constitutes fair use. In addition to the boilerplate fair use template, you must also write out on the image description page a specific explanation or rationale for why using this image in each article is consistent with fair use.

Please go to the image description page and edit it to include a fair use rationale. Using one of the templates at Wikipedia:Fair use rationale guideline is an easy way to ensure that your image is in compliance with Wikipedia policy, but remember that you must complete the template. Do not simply insert a blank template on an image page.

If there is other other fair use media, consider checking that you have specified the fair use rationale on the other images used on this page. Note that any fair use images uploaded after 4 May, 2006, and lacking such an explanation will be deleted one week after they have been uploaded, as described on criteria for speedy deletion. If you have any questions please ask them at the Media copyright questions page. Thank you.BetacommandBot 03:28, 3 June 2007 (UTC)[reply]

I have changed it to the BSD license --Racklever 15:31, 8 June 2007 (UTC)[reply]

This article has quite a linkfarm, I tagged it. See WP:EL for information about this and why I tagged it. Also, see WP:NOT particularly the part about WIkipedia not being a web directory. Aaron Bowen 11:46, 14 June 2007 (UTC)[reply]

"Like in C++ and most other object-oriented languages..."

I just wanted to note that in C++, there is very little distinction between user-defined and built-in types: both can be allocated on either the stack or the free store, pointers and references to both can exist, etc. Probably the only difference between them in C++ is that you can't derive a new class from a built-in type. Since this is a basic language philosophy of C++ (I can go find the part about this in The C++ Programming Language if you want), and very different from the object-primitive separation in Java, I think C++ shouldn't be used as an example (as in "Like in C++...") here. Dr. Sunglasses 18:18, 25 June 2007 (UTC)[reply]

Howto tag

I have removed the howto tag because it is inappropriate. For example the Reflection (computer science) article contains more sophisticated code than the simple Hello world of the formerly tagged section, and one cannot appreciate, much less read, that article without the ability to read code.

It is like attempting to read an article on music theory without including a few bars of music to denote the topic of discussion. It is not inappropriate to have an article on music for those who can read music. By analogy, it is not inappropriate to have a programming language article for those who can read code; if an article needs explanation, one can listen to the music, for a music article. There are entire CD's which discuss Beethoven's Ninth Symphony, for example. One can watch a program animation, or a program visualization, for a code article.

It is unjust to force the content of a code article to another venue entirely, just for the sake of an inappropriate tag. --Ancheta Wis 01:49, 29 July 2007 (UTC)[reply]

I'm restoring this. WP:OTHERSTUFFEXISTS is not a good argument. And this isn't "a few bars", it's a series of complete stub programs which are mostly completely opaque to people who don't speak the language. Seriously, we need sample code to explain Java applets? Why is that? Example code is a lazy way of expanding an article without really improving it. Chris Cunningham 11:54, 29 July 2007 (UTC)[reply]
This just came in: iPhone Hello world. It's a canonical way to learn about a language and its platform. Code samples show subtle things about a language that take a lot of text to convey, otherwise. For example, the fact that prolog returns a boolean value at every call, a nit of a detail that you have to know or your code doesn't work. --Ancheta Wis 17:02, 29 July 2007 (UTC)[reply]
I'm confused. Yes, it is obvious that when writing a tutorial, code examples are very helpful. But this isn't a tutorial. The tag explicitly states that Wikipedia is not here to teach subject matter. That Prolog returns "yes" or "no" to everything is a fundamental part of its design which is essential to understanding how the language works; that's a completely different kettle of fish to whether we need to actually provide sample code for a Java applet to explain what it is. Chris Cunningham 17:57, 29 July 2007 (UTC)[reply]


Difficult for Non-Computer Science Reader

Coudl something be added to this article that would make it clear to a non-expert reader what the importance of Java is? --Girl2k 16:25, 30 July 2007 (UTC)[reply]

I'm trying to cut down on the unnecessary geekishness just now. Once the article is shorter and has more focus I'll try to add a section about Java's applications and how its use has affected the computing world. Chris Cunningham 17:45, 30 July 2007 (UTC)[reply]

Importance rating

How come that this article gets only a "Mid" importance rating, when APL (sic!) gets a "High" rating?? I can only laugh on that. While APL is nothing more than an object of ridicule nowadays, Java is one of the most important - if not THE most important - enterprise software development platforms today. —Preceding unsigned comment added by 80.108.109.173 (talk) 19:13, 23 September 2007 (UTC)[reply]

Or it's not the most important enterprise software development platform today. It really depends on who you're talking to. You might make an argument for most /popular/ but if you're going to do that, include some statistics, thanks.137.48.130.200 17:56, 8 October 2007 (UTC)[reply]

@80: Even C++ has mid-importance in the Computer Science WikiProject. For Wikipedia:WikiProject Programming languages evaluation, this article should have high importance; in terms of Computer Science; I'm not so sure. If you think that APL should also be rated as mid-importance, or that all major programming languages should be high-importance, please effect that change (ideally with discussion first here). Evaluation of importance is specific to a WikiProject's need to prioritize improving certain articles, and is a tool, not a description to help or hurt its subject's image. GracenotesT § 06:46, 14 October 2007 (UTC)[reply]

Java update

Every time I start up my laptop, I get an annoying reminder that there is a Java update ready to download and install. A few minutes ago, I finally gave in and installed it. The problem is, I don't know what the hell Java is, and this article doesn't really help. The installation set-up only said that the download will make my "Internet experience richer." So, can someone explain what the Java program or whatever really is? This article, like almost all computer-related articles on Wikipedia, is all technical jargon and doesn't make any sense to me. —Preceding unsigned comment added by 71.107.134.163 (talk) 11:54, 20 October 2007 (UTC) I can download the update, and I can download a Shockwave Update. 65.43.178.200 12:11, 12 November 2007 (UTC)Kinz[reply]

What you have is a Java Plugin that runs Java applets in your browser, that are similar to Flash and ActiveX plugins. Those programs are used to create better interactive pages and normally the user will be unaware of it existence if everything is right and that is the reason for the constant updates. The other plataforms also have similar updates, but normally without notifying the user. This aspect of the Java technology is, however, a small portion (and quite francly one part in disuse) and this article had to deal with the entire aspect of the technology, making a good part of this technical jargon and doesnt making much sense to ppl outside of the software development market. Alvaroludolf 12:48, 25 October 2007 (UTC)[reply]
Not that this is a general discussion forum or anything, but for what it's worth the relevant article is Java (Sun) and the "technical jargon" here is no worse than that on random chemistry articles. For some reason, people seem to assume that computer science shouldn't be treated in a scientific manner on Wikipedia even though other sciences are. Chris Cunningham 12:58, 25 October 2007 (UTC)[reply]

Java or Java Script?

Should it be called Java or should it be called Java Script? 65.43.178.200 12:09, 12 November 2007 (UTC)Kinz[reply]

Java Updated

I have just updated my Java Script. 65.43.178.200 12:22, 12 November 2007 (UTC)Kinz[reply]

Javascript is a separate language with different syntax. I have never heard anyone say they have just updated their Java script...they say Java app or applet or class or jar file. I have been developing Java software for 11+ years.Cynic783 18:15, 14 November 2007 (UTC)[reply]