{{위키데이터 속성 추적}}
[[파일:OpenAstexViewer.jpg|섬네일|3차원 하드웨어 가속을 사용하여 서버에서 다운로드된 .pdb 포맷의 3D 파일을 시각화한 자바 애플릿<ref>{{웹 인용|url=http://openastexviewer.net/web/|title=The home site of the 3D protein viewer (Openastexviewer) under LGPL|access-date=21 September 2009|archive-url=https://web.archive.org/web/20090801135810/http://www.openastexviewer.net/web/|archive-date=1 August 2009|url-status=dead}}</ref>]]
'''자바 애플릿'''(Java applet)은 [[자바 바이트코드]] 형태로 배포되는 [[애플릿]]이다. [[자바 가상 머신]]이 내장된 [[웹 브라우저]]나 [[썬 마이크로시스템즈]]에서 배포하는 AppletViewer로 실행할 수 있다. 이 기능은 Java 9(2017) 이후 더 이상 지원되지 않습니다.<ref>{{웹 인용|title=Oracle Java SE Support Roadmap|url=https://www.oracle.com/java/technologies/java-se-support-roadmap.html|access-date=2022-12-20|archive-date=2020-11-29|archive-url=https://web.archive.org/web/20201129140314/https://www.oracle.com/java/technologies/java-se-support-roadmap.html|dead-url=no}}</ref> 그 중 악의적인 툴인 자바애플릿 킬러는 모든 윈도 운영 체제를 공격할 수 있다.{{출처|날짜=2011-09-18}} 자바 애플릿은 자바 언어의 첫 버전에 도입되었으며, 1995년 출시되었다.

자바 애플릿은 보통 자바로 작성되지만, [[자이썬]]<ref>{{웹 인용|url=http://www.jython.org/archive/21/applets/index.html|title=Jython applet page|publisher=|확인날짜=2017-01-31|보존url=https://web.archive.org/web/20161206123610/http://www.jython.org/archive/21/applets/index.html|보존날짜=2016-12-06|url-status=dead}}</ref>, [[JRuby]]<ref>{{웹 인용 |url=http://michal.hantl.cz/ruby-in-browser-jruby-inside-an-applet/ |제목=About Java applets in Ruby |확인날짜=2009년 11월 6일 |보존url=https://archive.today/20091228012449/http://michal.hantl.cz/ruby-in-browser-jruby-inside-an-applet/ |보존날짜=2009년 12월 28일 |url-status=dead }}</ref> [[파스칼 (프로그래밍 언어)|파스칼]],<ref>{{웹 인용|url=http://wiki.freepascal.org/FPC_JVM|title=Free Pascal Compiler for JVM|publisher=}}</ref> [[스칼라 (프로그래밍 언어)|스칼라]], [[에펠 (프로그래밍 언어)|에펠]]([[스마트에펠]]을 통해)<ref>[http://eiffelzone.com/esd/wrapj/ A tool to produce Java applets with SmartEiffel]{{깨진 링크|url=http://eiffelzone.com/esd/wrapj/ }}</ref>과 같은 다른 언어들 또한 사용할 수 있다.

자바 애플릿은 매우 빠른 속도로 수행되며, 2011년까지는 [[자바스크립트]] 보다 몇 배는 더 빨랐다.<ref>{{웹 인용|url=http://www.timestretch.com/FractalBenchmark.html|title=An example of the 2005 year performance benchmarking|date=8 June 2007|publisher=|확인날짜=2017-01-31|archive-date=2008-05-09|archive-url=https://web.archive.org/web/20080509140939/http://www.timestretch.com/FractalBenchmark.html}}</ref> [[자바스크립트]]와는 달리 자바 애플릿은 3차원 [[하드웨어 가속]] 접근이 가능했으므로 사소하지 않은, 연산 집중 시각 기능에 최적화시킬 수 있었다.

자바의 [[바이트코드]]가 [[크로스플랫폼]](플랫폼 독립적)이기 때문에 자바 애플릿은 [[마이크로소프트 윈도우]], [[FreeBSD]], [[유닉스]], [[macOS]], [[리눅스]]를 포함한 수많은 운영 체제용 브라우저(또는 기타 [[클라이언트]])를 통해 실행할 수 있다.

== 예제 ==
다음 예제는 java.applet 패키지를 통해 자바 애플릿을 사용한 것을 나타낸 것이다. 이 예제는 자바 [[애브스트랙트 윈도 툴킷]](AWT)의 클래스를 사용하여 [[헬로 월드]] 메시지를 출력한다.

<syntaxhighlight lang="java">
import java.applet.*;
import java.awt.*;

// Applet code for the "Hello, world!" example.
// This should be saved in a file named as "HelloWorld.java".
public class HelloWorld extends Applet {

    // Print a message on the screen (x=20, y=10).
    public void paint(Graphics g) {
        g.drawString("Hello, world!", 20, 10);

        // Draws a circle on the screen (x=40, y=30).
        g.drawArc(40, 30, 20, 20, 0, 360);

      // Draws a rectangle on the screen (x1=100, y1=100, x2=300,y2=300).
        g.drawRect(100, 100, 300, 300);

      // Draws a square on the screen (x1=100, y1=100, x2=200,y2=200).
        g.drawRect(100, 100, 200, 200);



    }
}
</syntaxhighlight>

단순한 애플릿들은 [[플러그인]]을 지원하는 응용 프로그램들을 정의하기 위해 인터넷에서 자유로이 공유된다.<ref>예시 참고: [[:en:Wikiversity:Java applets|위키배움터의 자바 애플릿 부분]]</ref>

[[컴파일러|컴파일]] 후의 결과물인 <code>.class</code> 파일이 웹 서버에 위치할 수 있으며 <code>&lt;applet&gt;</code>나 <code>&lt;object&gt;</code> 태그를 사용하여 [[HTML]] 페이지 안에서 호출할 수 있다. 예는 다음과 같다:

<syntaxhighlight lang="html5">
<!DOCTYPE html>
<html>
<head>
  <title>HelloWorld_example.html</title>
</head>
<body>
  <h1>A Java applet example</h1>
  <p>Here it is: <applet code="HelloWorld.class" height="40" width="200">
    This is where HelloWorld.class runs.
  </applet></p>
</body>
</html>
</syntaxhighlight>

페이지에 접근할 때 다음과 같이 표시된다:

::<span style="font-size:1.9em;">'''A Java applet example'''</span>
::Here it is: Hello, world!

다운로드 시간을 최소화하기 위해 애플릿은 [[JAR (파일 포맷)|jar]] 파일 형태로 전달할 수 있다. 이 예제의 경우 모든 클래스들이 ''example.jar''라는 압축된 형태 안에 위치할 경우 다음의 임베드되는 코드를 대신 사용할 수 있다:

<syntaxhighlight lang="html5">
<p>Here it is: <applet archive="example.jar" code="HelloWorld" height="40" width="200">
  This is where HelloWorld.class runs.
</applet></p>
</syntaxhighlight>

애플릿을 포함시키는 것은 APPLET 태그에 관한 썬의 공식 페이지에 상세 설명으로 기술되어 있다.<ref name="appletinclusion">[http://java.sun.com/j2se/1.4.2/docs/guide/misc/applet.html Java.Sun.com] Sun's APPLET tag page {{webarchive |url=https://web.archive.org/web/20100105041516/http://java.sun.com/j2se/1.4.2/docs/guide/misc/applet.html |date=5 January 2010 }}</ref>

== 같이 보기 ==
* [[자바 (프로그래밍 언어)|자바 프로그래밍 언어]]
* [[ActiveX|액티브엑스 컨트롤]]
* [[자바 서블릿]]

== 각주 ==
{{각주}}

== 외부 링크 ==
{{위키공용분류}}
* {{언어링크|en}} [https://web.archive.org/web/20051214102613/http://java.sun.com/docs/books/tutorial/applet/index.html 선 마이크로시스템즈 - 애플릿 제작 입문서]

{{자바 (소프트웨어 플랫폼)}}
{{토막글|프로그래밍 언어}}

[[분류:자바 (프로그래밍 언어)]]
[[분류:자바 플랫폼]]
[[분류:웹 1.0]]