Mobile commerce or m-commerce is defined as the exchange or buying and selling of commodities, services, or information on the Internet through the use of Internet-enabled mobile handheld devices (Hu, Lee, & Yeh, 2004). It is expected to be the next milestone after electronic commerce blossoming in the late-1990s. Internet-enabled mobile handheld devices are one of the core components of a mobile commerce system, making it possible for mobile users to directly interact with mobile commerce applications. Much of a mobile user’s first impression of the application will be formed by his or her interaction with the device, therefore the success of mobile commerce applications is greatly dependent on how easy they are to use. However, programming for handheld devices is never an easy task not only because the programming languages and environments are significantly different from the traditional ones, but also because various languages and operating systems are used by handheld devices and none of them dominates. This article gives a study of handheld computing, especially J2ME (Java 2 Platform, Micro Edition) programming, for mobile commerce. Various environments/languages are available for client-side handheld programming. Five of the most popular are (1) BREW, (2) J2ME, (3) Palm OS, (4) Symbian OS, and (v) Windows Mobile. They apply different approaches to accomplishing the development of mobile applications. Three themes of this article are: 1. Introduction of handheld computing, which includes server- and client- side computing. 2. Brief introductions of four kinds of client-side computing. 3. Detailed discussion of J2ME and J2ME programming. Other important issues such as a handheld computing development cycle will also be discussed.