Thursday, September 3, 2009

Fixing Java on Mac Snow Leopard

I have long documented some of the issues and differences for a Java developer on the Mac OS X. Most of that has been on Leopard, OS X 10.5. For quick links the most significant articles are: Java is a 2nd Class Citizen on MAC OSX, Fixing Java Memory Tools on Mac OS X and Java 7 on Mac OS X.

Monday I was faced with a new situation, Snow Leopard OS X 10.6. There are several issues with Java on the new Mac OSX 10.6 "Snow Leopard". This post will outline the known issues and will provide fixes for several of them (or provide links where fixes are already explained).

Known Issues:
  1. Java 5 is not installed
  2. Java 5 symbolic links are set to Java 6
  3. jmap - some aspects of jmap do not function
  4. javascript runtime is still missing
As a consequence, applications that used Java 5 either don't work, or provide a message as shown here from my favorite stock trading application.



* I'm still looking for more issues, so if you can add to the list, please add comments, email or twitter.
** I have tested the latest BTrace and it works fine.


Java 5 on Snow Leopard
Whither you agree with the removal of Java 5 or not, it is unbelievable to me that the Java 5 symbolic links are pointing to the CurrentJDK which points to 1.6. For those new to this space the Java version live under /System/Library/Frameworks/JavaVM.framework/Versions . I would advise you to either:
  1. replace Java 5 using instructions provided at leopard http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard
  2. simply delete the java 5 symbolic links
As a side note, I use a script for swapping between JVM versions. I modified the original script to just include 3 important functions when sourced in. I'll add the script to the bottom of this post as a reference. The 3 functions are jvms, setJava, unsetJava.
  • jvms reads through the version directory and reports what it reads of the file system.
  • setJava allows you to type in the name of the version and switches JAVA_HOME and path to this version of the JVM.
  • unsetJava reverts the set to the original java version
JMap on Snow Leopard
My initial execution of jmap on snow leopard failed with the following error message:

kensipe$ jmap 3407
Attaching to process ID 3407, please wait...
sun.jvm.hotspot.debugger.NoSuchSymbolException: Could not find symbol "heapOopSize" in any of the known library names (-)
at sun.jvm.hotspot.HotSpotTypeDataBase.lookupInProcess(HotSpotTypeDataBase.java:399)
at sun.jvm.hotspot.HotSpotTypeDataBase.readVMIntConstants(HotSpotTypeDataBase.java:319)
at sun.jvm.hotspot.HotSpotTypeDataBase.(HotSpotTypeDataBase.java:88)
at sun.jvm.hotspot.MacOSXTypeDataBase.(MacOSXTypeDataBase.java:36)
at sun.jvm.hotspot.bugspot.BugSpotAgent.setupVM(BugSpotAgent.java:578)
at sun.jvm.hotspot.bugspot.BugSpotAgent.go(BugSpotAgent.java:499)
at sun.jvm.hotspot.bugspot.BugSpotAgent.attach(BugSpotAgent.java:337)
at sun.jvm.hotspot.tools.Tool.start(Tool.java:163)
at sun.jvm.hotspot.tools.PMap.main(PMap.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.tools.jmap.JMap.runTool(JMap.java:179)
at sun.tools.jmap.JMap.main(JMap.java:110)
Debugger attached successfully.

The good news is that the debugger attached successfully :)

Information regarding this issue is scarce. It turns out to likely be an issue with the version of Java that is distributed with snow leopard. The JDK 1.6 rev 14 appears (based on non-confirmed web sources) to have this issue. The latest is JDK 1.6 rev 16 should have the fix, however using the apple distro, we are left waiting for Apple for the fix. Although jmap fails with no arguments it does succeed for certain commands such as jmap -histo 3407.
After replacing the JDK 5 with the leopard distro as advertised above and switching to this version with the script above, jmap works fine. However jdk 5 jmap only works against jdk 5 running applications. It fails against java 6.

javascript
As record in a posting from a year ago, called Fixing Java Memory Tools on Mac OS X, the javascript library is still not provided by Apple as part of the Java distro. You will need to following the instructions there to fix it. Unfortunately the Rhino download has disappeared from the Mozilla site, so if you didn't keep a copy, ping me and I will send you want I have. You will also need to duplicate this for each version of Java if you install the Java 5 Leopard package.
The test to see if this is setup correctly for you is: jrunscript -q
If that command only returns AppleScript, then you are missing the javascript engine which is need for a number of tools in the JDK.

After these changes, it appears that Snow Leopard is ready for some hard core Java development. Good Luck and Happy Coding!

Java Switching Script that I use:



# *************************************************************************
# Originally written by Shawn Erickson - shawn at freetimesw.com
#
#
# Last Update: 2008y 08m 8d
#
# The following functions are meant for use with bash shell which is currently the
# default on Mac OS X 10.4 (starting with 10.3 IIRC) unless otherwise configured.
# Good info on why not sym links: http://lists.apple.com/archives/Java-dev/2006/Jan/msg00290.html
#
# from: http://lists.apple.com/archives/Java-dev/2005/Aug/msg00506.html
# http://homepage.mac.com/shawnce/misc/java_functions_bashrc.txt
#
# *************************************************************************

### Prompt ###

export CURRENT_MODE_STRING="";

### Java Environment Functions ###

J_VERSIONS_DIRECTORY="/System/Library/Frameworks/JavaVM.framework/Versions"
J_COMMANDS_SUBPATH="Commands"
J_HOME_SUBPATH="Home"

function availableJVMs()
{
ls -1 $J_VERSIONS_DIRECTORY | grep ^[0-9].[0-9]
}

function jvms()
{
clear
echo "Available JVMs: "$jvms
ls -1 $J_VERSIONS_DIRECTORY | grep ^[0-9].[0-9] # look to remove redundant call
echo " "

echo "Current Java:"
java -version
}

function setJava()
{
local target_jvm=""
local jvms=$(availableJVMs)

# Validate that the user requested an available JVM present on the system

for jvm in $jvms ; do
if [ "$jvm" == "$@" ]; then
target_jvm=$@
fi
done

if [ "$target_jvm" == "" ]; then
echo "Unsupported Java version requested"
return;
fi

# If we get here the user asked for a valid JVM, so configure it

echo "Configuring Shell Environment for Java "$@
export JAVA_VERSION=$@

# First unset any current set java, back to default before doing configuration
_unsetJava

# Generate the paths needed for the JVM requested
local jcmd="${J_VERSIONS_DIRECTORY}/$@/${J_COMMANDS_SUBPATH}"
local jhome="${J_VERSIONS_DIRECTORY}/$@/${J_HOME_SUBPATH}"

# We save the original path so we can toggle back if unset
ORIGINAL_PATH="$PATH"
PATH="$jcmd:${PATH}"

# We save the original JAVA_HOME so we can toggle back if unset
ORIGINAL_JAVA_HOME="$JAVA_HOME"
JAVA_HOME="$jhome"

# Update command prompt mode tag to note JVM setting
CURRENT_MODE_STRING="J$@"

echo "Current Java:"
java -version
}

function _unsetJava()
{
if [ "$CURRENT_MODE_STRING" != "" ]; then
PATH="$ORIGINAL_PATH"
JAVA_HOME="$ORIGINAL_JAVA_HOME"
CURRENT_MODE_STRING=""
fi
}

function unsetJava()
{
echo "Configuring Shell Environment for default Java"
_unsetJava

echo "Current Java:"
java -version
}


68 comments:

Unknown said...

leopard http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard is a bad link, its actually a good link but you have two addresses inside of it. Thanks for making this post although your fix was WAY over my head (new to the mac by a couple of weeks) the link to dc.edu allowed me to fix my java issues!

Unknown said...

Ken, I'd love to get the version of Rhino you're using, and a little explanation on how you're using the script would be helpful as well. I get nothing when I try to execute the script.

J. Peter Freire said...

Actually, Java slows down my macbook air significantly using snow leopard. I don't know if it's a snow leopard issue, but I *did* troubleshoot enough to know that my computer was going *very* slow when I had a few browser tabs open (4. Only 4.) and realized that Gmail was running far too sluggish. Switch to HTML? It's fine. . . though the other tabs were having issues too.

I checked the s ystem monitor and the browser wasn't taking anything inordinate. But the system memory use was off the wall. up to 70%!!!

Just for kicks, I disabled Java in my browsers. System memory use *dropped*.

Any thoughts on that?

Brian Pontarelli said...

I've figured out the jmap issues. These also cause jvisualvm to fail as well. The key is to set the correct parameters into the VM in order to get the tools to work. Here's the parameters you need:

-Xverify:none = This allows jmap to work. It also allows jvisualvm to work

-Xshare:off = This causes jvisualvm to work without any errors. There is an attach error in jvisualvm that goes away with this setting

Rex Spell said...

Ken - Do you know of any way to get Java 4 and 5 on a MBP that is running Snow Leopard? I need those two versions in order to log into a particular piece of equipment and have been unable to get them installed.

Ben said...

Thanks for great information.
Web design company

Ken Sipe said...

@rex much of this blog post provides instructions on how to get java 5 running on snow leopard. I haven't attempted to get java 4 on it. however the http://wiki.oneswarm.org/index.php/OS_X_10.6_Snow_Leopard site I mentioned in the article has a java 1.4 option and indicates it runs on snow leopard. Good luck!

BTW... thanks @Pontarelli for the parameter details on jmap.

Unknown said...

hi Ken,
although my use of Java is strictly web serving and games related, but still it is a pain in the *** to not be able to relay on my Mac to do my small things.
I did try your first fix, which was replace Java 5, WITHOUT any noticeable difference than before. In other words it didn't work. Is there a way to know what i did is right? and if i repeated the same steps again, just to be sure, would that miss things up?
As for the second option, deleting the java 5 symbolic links, i have no idea what that is or where to find it. can you please help?

thank you very much sir.

Unknown said...

Ken, I'd love to get the version of rhino you are using, and explain a bit about how you use the script would be helpful as well. What I get when I try to execute the script.Web Design Logo Design

Amber Melton said...

Ken, I like to get the Rhino version you are using, and on how you use a script to explain what would be helpful. I get what, and when I try to run the script. Candleholders Spy watch Camera Bath and Body SEO Services Herbal Products

logo design - logoinn said...

Running OSX 10.5.4 on Mac Pro....can't find the preferences panel for Java and can't find any way to update Java software....having same problems as listed here...blank java screens and screens with the dreaded red "X" in upper left hand corner.
Logo Design | Logo Designs
Website Design | Web Site Design

aweseome blogger said...

waiting for Apple for the fix. Although jmap fails with no arguments it does succeed for certain commands such as jmap -histo 3407.
After replacing the JDK 5 with the leopard distro as advertised above and switching to this version with the script above, jmap works fine. However jdk 5 jmap only works against jdk 5 running applications. It fails against java 6.tinggi badan

Faraz Khan said...

your post is just another reminder why i didnt choose java as a course subject.. I just dont understand it :(

-faraz from bluray ripper and blu ray ripper software

Acnezine said...

I need those two versions in order to log into a particular piece of equipment and have been unable to get them installed, but I did troubleshoot enough to know that my computer was going very slow.

Christina Gomes said...

I need some more information that how you are using such script? DWI lawyers

Unknown said...

I found your tips useful and informative,thanks for sharing the post.

Hughesnet Broadband

Unknown said...

It has a lots of information, thank you for sharing.
generic viagra
viagra generic

davidbieber80 said...

# jvms reads through the version directory and reports what it reads of the file system.
# setJava allows you to type in the name of the version and switches JAVA_HOME and path to this version of the JVM.
# unsetJava reverts the set to the original java version
jump higher Electronic Cigarette reverse phone detective tava tea error fix

Farah Kuing said...

wow, great share,, i dont understand lol my blogpost

The Jump Manual said...

you have a nice site.thanks for sharing this site. jump higher

Unknown said...

Great Post
Mera Pakistan

Magento said...

Thanks for sharing the technical things.They are very useful.
Web Designer Bahrain

Unknown said...

OSHA 10 hour
I would like to read your blog every day Thanks

Unknown said...

Well, I enjoyed your article These are so interesting thanks for that . I will be back to some more thoughts website hosting companies

sathya said...

Thanks for sharing it.
Joomla developer

Op Dr Ali Mezdeği said...

Running OSX 10.5.4 on Mac Pro....can't find the preferences panel for Java and can't find any way to update Java software....having same problems as listed here...blank java screens and screens with the dreaded red "X" in upper left hand corner.fue sac ekimi fiyatlari

Anonymous said...

A very nice page. I think the effort has passed, we have to thank you:))
diş

GIrin said...
This comment has been removed by the author.
Unknown said...
This comment has been removed by the author.
Unknown said...

I was not familiar with such application earlier. Your post made me get in touch with it and gave new and something different knowledge about these kind of applications. Thanks a lot for sharing it here.
Web hosting

Creativehighs said...

Amazing post that you have shared here. I esteem your composed work aptitudes and all the discovering that you have shared here.
Advertising Agency in Gurgaon

Unknown said...

this is like extremely beautiful post ..
Creativehighs

Zenyataa said...

Amazing stuff man... An obligation of appreciation is all together for all your hard work!!!!!
Zenyataa shoes

Creativehighs said...

I discovered this is an educational and intriguing post for I think it is helpful and learned. I might want to thank you for the endeavors you have made recorded as a hard copy this article. I am trusting a similar best work from you later on too. Indeed your exploratory writing capacity has propelled me.
Creativehighs

Promark Pvt Ltd said...

This is a truly magnificent perused for me. Should concur that you are perhaps the coolest blogger I at any point saw.
interactive flat panel

ZZxmzn said...

Space สำหรับขั้นตอนการพัฒนาและการสื่อสารทั้งหมด JetBrains Space เป็นแพลตฟอร์มแบบครบวงจรที่ครอบคลุมขั้นตอนการพัฒนาซอฟต์แวร์ทั้งหมด ตั้งแต่การโฮสต์ที่เก็บ Git, การทำ CI/CD อัตโนมัติ, การเผยแพร่แพ็คเกจ เว็บสล็อตตรง และการจัดการสภาพแวดล้อมการพัฒนาระบบคลาวด์ ไปจนถึงการจัดการปัญหา เอกสาร และการแชท ทั้งหมดนี้รวมอยู่ในที่เดียว ด้วยการรวมระ

ZZxmzn said...

พลาดเหมือนเกมอื่น ๆ คาดการณ์ความสูญเสียของคุณให้ชัดเจนว่าการคาดเดาการสูญเสียของคุณนั้นไม่เหมือนกับความรู้สึกเป็นผู้แพ้ แม้แต่ผู้เล่นมืออาชีพก็ใช้เวลามากพอในการค้นหาความน่าจะเป็นที่จะพบกับการสูญเสีย แล้วจึงสร้างกลยุทธ์เพิ่มเติมตามนั้น พิจารณาวางเดิมพันเล็กน้อยเพราะจะทำให้คุณได้สัมผัสกับเกม เว็บเกมสล็อต และในขณะเดียวกันก็หลีกเลี่ยงไม่ให้คุณโดนโกง การชนะแบล็คแจ็คโดยไม่นับไพ่อาจเป็นเรื่องที่ท้าทาย แต่ก็ใช่ว่าจะเป็นไปไม่ได้ กลยุทธ์หนึ่ง

ZZxmzn said...

(ชั่วโมง) * 40 (แฮนด์ / ชั่วโมง) * 2 (ที่นั่ง) = ~130k แฮนด์ กฎในคาสิโนที่ฉันเยี่ยมชม ROI ของกฎของเฮลซิงกิคือ 99.84% ดังนั้นจึงค่อนข้างสูง มีหกสำรับในหนึ่งรองเท้าซึ่งจะสับไพ่โดยอัตโนมัติทุกครั้งที่ใส่ไพ่ที่เล่น เว็บสล็อตแตกง่าย เจ้ามือจะวางไพ่บนรองเท้าประมาณ ทุกรอบที่ห้า ดังนั้นจึงไม่มีข้อได้เปรียบจากการนับไพ่ เงินที่ได้รับ / ใช้จ่ายระหว่างปี 2015 - 2018 ปีแรกของฉันในปี 2015 คือ +9k€ ครึ่ง

ZZxmzn said...

แบล็คแจ็คเป็นเกมบนโต๊ะที่ได้รับความนิยมมากที่สุดเกมหนึ่ง ส่วนหนึ่งเพราะมันดูตรงไปตรงมา แต่ในขณะที่กลยุทธ์และการตัดสินใจมีบทบาท โอกาสเป็นส่วนสำคัญของการผสมผสาน เล่นง่าย แต่ไม่ง่ายนักที่จะเชี่ยวชาญ เว็บตรงสล็อต หลังจากที่คุณพบที่นั่งที่โต๊ะแบล็คแจ็คที่เหมาะกับงบประมาณของคุณแล้ว ให้วางเดิมพัน เจ้ามือแจกไพ่ให้คุณสองใบ หงายหน้า และแจกไพ่ให้ตัวเองหนึ่งใบ หากไพ่

ZZxmzn said...

ใบ แต่หนึ่งในนั้นคว่ำหน้าอยู่ เฉพาะตัวแทนจำหน่ายเท่านั้นที่ได้รับอนุญาตให้แตะบัตรโปรดจำไว้เสมอ แม้ว่าเกมนี้จะเรียกว่า Blackjack หรือ Twenty One เป้าหมายไม่ใช่เพื่อให้ได้ 21 แต่เพื่อให้ได้ผลรวมที่สูงกว่าเจ้ามือโดยไม่ให้เกิน 21 หรือที่พวกเขาพูดว่า "จับ" เมื่อต้องการเพิ่มการ์ดอื่นในมือของคุณ เพียงแค่แตะนิ้วของคุณ เว็บสล็อตpg สิ่งนี้เรียกว่าการตี คุณสามารถตีได้มากเท่าที่คุณต้องการตราบ

ZZxmzn said...

สามารถช่วยให้คุณเรียนรู้กฎต่างๆ เรายังมีโพสต์ที่อธิบายรายละเอียดเพิ่มเติมเกี่ยวกับวิธีใช้การ์ดกลยุทธ์ มีแอพมือถือมากมายที่ให้ความช่วยเหลือด้านกลยุทธ์แบล็คแจ็คทันที อย่างไรก็ตาม คุณไม่สามารถใช้โทรศัพท์มือถือ เว็บสล็อตตรง คอมพิวเตอร์ แท็บเล็ต หรืออุปกรณ์อิเล็กทรอนิกส์อื่นใดขณะอยู่ที่โต๊ะแบล็คแจ็คของ Vegas คาสิโนบางแห่งอาจให้คุณรับสายด่วนที่โต๊ะได้ แต่คุณไม่

ZZxmzn said...

ตัดสินใจว่าจะใช้เอซอย่างไร (เป็น 1 หรือ 11) มันจะกลายเป็นฮาร์ดแฮนด์และคุณสามารถใช้กฎฮาร์ดแฮนด์ที่ระบุไว้ก่อนหน้านี้ว่าเมื่อใดควรตีหรือยืน เมื่อใดควรแยกแฮนด์ลาสเวกัส แบล็คแจ็ค การแยกเอซคุณควร ปั่นสล็อต แยกเอซ เก้า และแปดเสมอ หากไพ่สองใบของคุณมีแต้มเป็นสิบ อย่าแยกมันออก เนื่องจากไพ่ 20 เป็นไพ่ที่ดีมาก เมื่อพูดถึงการแบ่งคู่อื่น ๆ กฎจะซับซ้อนมากและไม่ได้เปลี่ยนอัตราต่อรองของเกมมากนัก แต่โปรดจำไว้ว่าจะเป็นการดีกว่าที่จะเก็บ 5

ZZxmzn said...

เดิมของคุณสามารถทำประกันได้ ด้วยข้อยกเว้นที่หายากมาก การประกันเป็นการเดิมพันที่แย่ เว็บเกมสล็อต โอกาสชนะอยู่ที่ 9:4 ซึ่งหมายความว่าคุณจะชนะ 4 ครั้งใน 9 เกม แต่แพ้ 5 ครั้ง เมื่อคุณชนะ จะจ่ายเหมือนเกมทั่วไปที่ชนะ 2 ต่อ 1 (คุณจะได้รับเงินคืนสองเท่า) อย่างไรก็ตาม การชนะปกติโดยไม่มีการเดิมพันข้างนี้จะอยู่ที่ประมาณ 46% (สมมติว่าคุณเล่นได้สมบูรณ์แบบโดยใช้

ZZxmzn said...

และกลยุทธ์ของแบล็คแจ็คที่มีมากกว่าหนึ่งสำรับ โต๊ะแบล็คแจ็ค โดยปกติจะเป็นรูปพระจันทร์ครึ่งเสี้ยวโดยมีเจ้ามืออยู่ด้านหนึ่งและชุดที่นั่ง 5 (5) ถึงเจ็ด (7) สำหรับนักพนันในอีกด้านหนึ่งที่หันหน้าเข้าหาเจ้ามือ เว็บสล็อตแตกง่าย ผู้เล่นมักจะพบขีดจำกัดของโต๊ะ (เดิมพันขั้นต่ำและสูงสุด) แสดงอยู่ที่ใดที่หนึ่งบนโต๊ะแบล็คแจ็ค หากคุณกำลังเล่นแบล็คแจ็คในคาสิโนบนบก คุณจะต้องแปลงเงินสดเป็นชิป — ซึ่งโดยทั่วไปจะเป็นสกุลเงินที่ใช้ ที่โต๊ะแบล็คแจ็ค นอกจากนี้ คุณจะสังเกตเห็นวงกลมที่ทำเครื่องหมายไว้บนโต๊ะซึ่งระบุตำแหน่งที่คุณควรวางชิปของคุณ

ZZxmzn said...

แม้ว่าสล็อตแมชชีนจะไปไกล แต่ก็ยังมีบางเครื่องอยู่ นั่นเป็นเพราะอุตสาหกรรมคาสิโนเจริญรุ่งเรืองทั้งออฟไลน์และออนไลน์ ดังนั้นจึงเป็นเรื่องธรรมดาสำหรับคาสิโนบนบกที่จะให้บริการสล็อตแมชชีนในทุกวันนี้ ยังคงมีคาสิโนประเภทนี้อยู่มากมาย เว็บสล็อตpg หากสล็อตคือสิ่งที่คุณต้องการ คุณสามารถเพลิดเพลินได้ที่สถานประกอบการเหล่านี้ แต่คุณสามารถเพลิดเพลินออนไลน์

ZZxmzn said...

โยก วงล้อจะหมุนและคุณจะชนะหรือไม่ก็ได้ คุณสามารถเพิ่มจำนวนเงินเดิมพันได้หากต้องการเช่นกัน โดยปกติแล้ว กฎของเกมจะแสดงเป็นช่องจ่ายเงิน หากคุณกำลังเล่นเพนนีสล็อต เว็บสล็อตตรง เครื่องจะให้รางวัลเป็นเหรียญแก่คุณ คุณจะต้องไปที่การลงทะเบียนเพื่อแลกเปลี่ยนเป็นสกุลเงิน สล็อตแมชชีนที่ทันสมัยมากขึ้นจะต้องให้คุณไปที่การลงทะเบียนอีกครั้งและถอนเงินรางวัลของคุณที่นั่น วิธีเล่น

ZZxmzn said...

หมุนครั้งก่อนไม่มีผลต่อผลลัพธ์ของการหมุนครั้งถัดไป ข้อเท็จจริงสุดท้ายที่ต้องจำไว้คือเครื่องกำเนิดตัวเลขสุ่มถูกตั้งโปรแกรมในลักษณะที่คาสิโนมีความได้เปรียบทางคณิตศาสตร์ที่ผ่านไม่ได้ หากคุณเล่นนานพอ เว็บตรงสล็อตpg คาสิโนก็จะชนะ เพราะนั่นคือวิธีการตั้งค่าเกม นั่นไม่ได้หมายความว่าคุณไม่สามารถทิ้งผู้ชนะได้ในระยะสั้น แต่ก็ไม่เกี่ยวอะไรกับการเลือกเครื่องร้อนหรือเครื่องเย็น กลยุทธ์

ZZxmzn said...

ชนะอะไรเลยในการหมุนนั้น) ตัวอย่างเช่น สมมติว่าคุณเริ่มต้นด้วยเงินทุนหมุนเวียน $25 คุณจะเล่นจนกว่าคุณจะทำสิ่งใดสิ่งหนึ่งต่อไปนี้สำเร็จ: เสีย $15 ชนะ $15 แพ้ 9 สปินติดต่อกัน บอกตามตรงว่าเป็นระบบที่ค่อนข้างง่าย เว็บเกมสล็อต และการจดจำและนำไปใช้จริงนั้นไม่ใช่เกมง่ายๆ แต่ความคิดที่ว่ามันจะช่วยให้คุณได้เงินมากขึ้นและ/หรือเสียเงินน้อยลงนั้นช่างน่าหัวเราะ ไม่มีสิ่งใดเกี่ยวกับ

ZZxmzn said...

น้อยหนึ่งเหรียญลงในสล็อต แล้วดึงที่จับหรือกดปุ่มเพื่อเปิดใช้งานวงล้อหนึ่งถึงสามวงหรือมากกว่าที่ทำเครื่องหมายไว้ ส่วนแนวนอนโดยใช้สัญลักษณ์ต่างๆ เว็บสล็อตแตกง่าย เครื่องจ่ายออกโดยการหยดลงในถ้วยหรือรางจากสองถึงเหรียญทั้งหมดในเครื่อง ขึ้นอยู่กับวิธีการและจำนวนของสัญลักษณ์เรียงกันเมื่อวงล้อหมุนหยุดนิ่ง สัญลักษณ์ที่ใช้ตามประเพณี ได้แก่ ดาว ชุดไพ่ แท่ง ตัวเลข (เลข 7 เป็นตัว

ZZxmzn said...

การ์ดบนวงล้อ ระฆังสามใบเรียงกันหมายถึงการจ่ายเงินสูงสุด สาเหตุหลักมาจากแผ่นดินไหวที่ซานฟรานซิสโกในปี 1906 ทำให้เครื่องระฆังเสรีภาพเพียง 4 เครื่องจากกว่า 100 เครื่องที่สร้างโดย Fey รอดชีวิตมาได้ Liberty Bell ได้รับความนิยมอย่างมากในหมู่ลูกค้ารถเก๋งในซานฟรานซิสโก ปั่นสล็อต และถูกลอกเลียนแบบอย่างรวดเร็วโดยคู่แข่งของ Fey เช่น Mills Novelty Company of Chicago กองกำลังของศีลธรรมและนักบวชและกฎหมายมักต่อต้านการทำงานของเครื่องสล็อตแมชชีน เมื่อถึงเวลาที่ซานฟรานซิสโกห้ามพวกเขาในปี 1909

ZZxmzn said...

จำกัดการเดิมพัน และคุณสมบัติเกมโบนัส สล็อตแมชชีนจำนวนมากให้รางวัลแก่ผู้เล่นอย่างใจกว้าง เว็บสล็อตpg ไม่ใช่ผ่านอัตราผลตอบแทนที่แท้จริง แต่โดยการรวมองค์ประกอบหลักทั้งหมดของเกม เราได้รวบรวมรายการสั้น ๆ เพื่อช่วยให้คุณเข้าใจว่าสล็อตที่ยอดเยี่ยมมีลักษณะอย่างไร ในกรณีของเรา เราขอแนะนำรายการโปรดส่วนบุคคล เช่น: โดยธรรมชาติแล้ว เราทุกคนจะมีการตั้งค่าที่แตก

ZZxmzn said...

แมชชีนที่มีอัตราการคืนทุนสูงสุดเป็นกลยุทธ์ที่ยอดเยี่ยม แน่นอนว่านี่ไม่ได้หมายความว่าพวกเขามีโอกาสชนะสูงสุด เนื่องจากความผันผวนเฉพาะของสล็อตอาจขัดแย้งกับสิ่งที่คุณต้องการบรรลุในระยะสั้น อย่างไรก็ตาม เว็บสล็อตตรง สล็อตคาสิโนที่มี RTP สูงกว่าค่าเฉลี่ยจะ ทำให้สามารถชนะได้ในบางกรณีมากกว่าสล็อตแบบเก่าที่เล่นได้ 95% อีกครั้ง คุณควรรู้ว่าเกมเช่น Book of Dead ไม่ได้

ZZxmzn said...

ความผันผวนก็เช่นกัน ในช่วงเวลานั้น ชุมชนสล็อตสนใจแต่ RTP แต่เมื่อทรัพยากรพร้อมใช้งานออนไลน์ ฐานผู้เล่น ได้ค้นพบเกี่ยวกับความผันผวน คุณทราบอยู่แล้วว่าความผันผวนคืออะไร – มันคือความถี่ของการสร้างชุดค่าผสมที่ชนะเมื่อเทียบกับจำนวนเงินที่คุณชนะโดยเฉลี่ย ความผันผวนมีสามประเภท: ความผันผวนต่ำ เว็บตรงสล็อตpg ความผันผวนสูง ความผันผวนปานกลาง ความผันผวนต่ำ หมายความว่าคุณจะชนะบ่อยขึ้นแต่ชนะน้อยลง ความผันผวนสูงหมายความว่า

ZZxmzn said...

Vikings จริง ๆ แล้วมีสล็อตสองสามสล็อตที่สร้างจากวัฒนธรรมสมัยนิยมหรือได้รับแรงบันดาลใจจากภาพยนตร์ ดังนั้นคุณจะถูกดึงดูดโดยธรรมชาติไปยังแฟรนไชส์อันเป็นที่รักซึ่งในที่สุดก็มาถึงโลกของเกมคาสิโน เว็บเกมสล็อต การกำหนดกลยุทธ์สล็อตแมชชีนที่เหมาะกับสล็อตแบรนด์โปรดของคุณนั้นไม่แตกต่างจากสล็อตอื่นเลยจริงๆ สิ่งที่คุณต้องทำคือมุ่งเน้นไปที่การเล่นเกมและสำรวจมันอย่างครบถ้วน อีกครั้ง ไม่จำเป็นต้องจ่ายเงินเพื่อเล่น แต่ถ้าคุณต้องการ เราขอแนะนำ

ZZxmzn said...

สำหรับโบนัสต้อนรับ ตัวอย่างเช่น คุณอาจลงเอยด้วยการเพิ่มแบ๊งค์ของคุณตั้งแต่เริ่มต้น ต้องการที่จะชนะหรือไม่? Learn to Walk Away การนำทัศนคติที่ดีติดตัวไปด้วยเมื่อเล่นสล็อตเป็นหนึ่งในส่วนผสมของความสำเร็จ เว็บสล็อตแตกง่าย เนื่องจากไม่มีอะไรมากที่คุณสามารถทำได้เพื่อมีอิทธิพลต่อการเล่นเกมผ่านทักษะ คุณจึงสามารถพัฒนากรอบความคิดที่ช่วยให้คุณเพิ่มโอกาสในการประสบความ

ZZxmzn said...

สามารถใช้ได้ในวันนี้คือการทำให้แน่ใจว่าสิ่งเล็กน้อยทั้งหมดที่มีอิทธิพลต่อการพนันออนไลน์ของคุณมารวมกันอย่างเรียบร้อยเพื่อเพิ่มโอกาสในการชนะ เงื่อนไขประการหนึ่งคือการค้นหาคาสิโนที่ดีที่สุด สล็อตเว็บตรงแท้ คาสิโนเหล่านี้จะช่วยให้คุณได้รับประโยชน์จากฟีเจอร์มากมาย เช่น โบนัส โปรโมชั่นบ่อยครั้ง โปรแกรมความภักดีที่ยอดเยี่ยม และการรวบรวมเกมสล็อตที่คุณสามารถเพลิดเพลินอย่างแท้จริง โอกาสที่ดีที่สุดในการประสบความสำเร็จในระยะยาว การเล่น

ZZxmzn said...

เงินเป็นจำนวนมาก พวกเขา อธิบายถึงความรู้สึกหมดหนทางและต้องการเลิกเล่น แต่พบว่าตนเองติดเกมและถูกล่อลวงโดยกลยุทธ์การตลาดเชิงรุกของบริษัท ผู้เล่นส่วนใหญ่ใน 21 คนไม่ประสงค์ออกนาม เว็บสล็อตแตกง่าย เนื่องจากรู้สึกละอายใจต่อการเสพติด และไม่ต้องการให้คนที่รักรู้เกี่ยวกับพฤติกรรมของพวกเขา หญิงชาวเพนซิลเวเนียวัย 42 ปีกล่าวว่าเธอรู้สึกเศร้าใจที่เธอใช้เงิน 40,000 ดอลลาร์

ZZxmzn said...

ในคาสิโน Big Fish ในขณะที่ทำงานเป็นที่ปรึกษาการติดยาเสพติด "ตลอดเวลาที่ฉันทำงานเป็น ที่ปรึกษาด้านการติดยาเสพติด ฉันติดการพนันและไม่มีความหวังที่จะได้เงินคืน” เธอกล่าว Big Fish Games ไม่เปิดโอกาสให้ใครสัมภาษณ์ เว็บเล่นสล็อต และบริษัทไม่ตอบคำถามโดยละเอียด บริษัทได้กล่าวในการยื่นฟ้องศาลก่อนหน้านี้ว่ามีผู้เล่นเกมเพียงเศษเสี้ยวที่ใช้จ่ายเงินจริง ในการตอบสนองต่อข้อซักถามของ NBC News บริษัทได้ออกแถลงการณ์ว่าเกมของตนไม่ใช่

ZZxmzn said...

Joann วัย 46 ปี ซึ่งอาศัยอยู่ทางตะวันตกเฉียงใต้ของฟลอริดา กล่าวว่าเธอเริ่มเล่น Big Fish Casino เมื่อประมาณ 8 ปีที่แล้ว เธอประเมินว่าเธอใช้เงิน 100,000 ดอลลาร์ไปกับเกมนี้ คุณรู้ไหมว่าฉันบอกอะไรผู้คนบ้าง เว็บตรงสล็อตpg มันเป็นลัทธิและพวกเขาดูดคุณเข้าไป และเมื่อคุณเข้าไปแล้ว คุณจะออกไปไม่ได้” โจแอนน์กล่าว ผู้ซึ่งขอใช้ชื่อกลางของเธอเท่านั้น “คุณอยากเล่น และคุณอยากหมุน”

ZZxmzn said...

ธุรกิจที่ร่ำรวย จากข้อมูลที่ได้รับจาก Apptopia ซึ่งเป็นบริษัทวิเคราะห์แอป Big Fish Games ทำรายได้ประมาณ 139.3 ล้านดอลลาร์จากผู้เล่น Big Fish Casino และ Jackpot Magic ตั้งแต่เดือนกุมภาพันธ์ 2019 ถึงกรกฎาคม 2020 ระบบระดับของแอปพร้อมกับฟังก์ชันโซเชียลสามารถเป็น เว็บเกมสล็อต กับดักอันทรงพลังสำหรับผู้เล่นบางคน Joann กล่าวว่าเธอยังคงเล่นต่อไป เนื่องจาก Big Fish

ZZxmzn said...

International Journal of Contemporary Hospitality Management และจะตีพิมพ์ในฉบับพิมพ์ของวารสารใน 2013. การศึกษามีความสำคัญ, ผู้เขียนกล่าวว่า, เพราะมีBig Fish Games เป็นหนึ่งในตัวอย่างที่ชัดเจนที่สุดของการบรรจบกันของความสนุกที่ไม่เป็นอันตรายในช่วงเวลาสั้นๆ ของวิดีโอเกมและโลกแห่งการพนันด้วยเงินจริงที่ขยายตัวอย่างรวดเร็ว เว็บสล็อตpg ในขณะที่วิดีโอเกมหลายเกมได้เพิ่ม

ZZxmzn said...

เสียรายได้บางส่วนไปกับการหักเงินที่เกี่ยวข้องกับไวรัสโคโรนา สิ่งนี้ต้องผ่านช่วงขึ้นๆ ลงๆ มากมาย" เธอกล่าว . "ฉันคิดว่ามันเป็นตำนานว่ามันกำลังจะเกิดขึ้น นั่นจะเปลี่ยนแปลงชีวิตฉัน ณ จุดนี้วรรณกรรมเกี่ยวกับแรงจูงใจว่าทำไมผู้คนถึงชอบสล็อตแมชชีนแม้ว่าคาสิโนจะยอมรับอัตราต่อรองในการรับเงินของนักพนันในระยะยาว สล็อตเว็บตรงแท้ การศึกษาส่วนใหญ่เกี่ยวกับการพนันดูที่ปัญหาการพนัน บรรยากาศของคาสิโน หรือทั่วไป บุคลิกภาพและลักษณะที่สร้างแรงบันดาล

ZZxmzn said...

ห้องเต็มไปด้วยเสียงบี๊บ กระดิ่ง และไฟกระพริบ ชายหญิงที่แต่งตัวดีเดินไปมา กดปุ่มและดึงคันโยก ดูเชอร์รี่และเซเว่นหมุนบนจอแสดงผลคริสตัลเหลว แต่ผู้ชายและผู้หญิงเหล่านี้ไม่ได้มาที่นี่เพื่อความสนุก พวกเขามาที่นี่เพื่อทำธุรกิจ เว็บสล็อตแตกง่าย และธุรกิจของพวกเขาคือการพนัน ตั้งแต่วันที่ 29 เมษายนถึง 1 พฤษภาคม 2551 Palais des Congrès de Montréal ในเมืองมอนทรีออล รัฐควิเบก เป็น

ZZxmzn said...

เกี่ยวกับระดับความสามารถของตน รักษาได้ง่ายกว่า แต่นักพนันเครื่องนั้นถูกควบคุมโดยเครื่องจักรจริงๆ คุณจะได้รับความประทับใจว่าคุณสามารถเอาชนะเครื่องจักรได้” Horbay กล่าวว่า เว็บเล่นสล็อต หลายคนถูกโน้มน้าวให้เชื่อว่าพวกเขากำลังทรมานจากการบิดเบือนความรู้ความเข้าใจ ทั้งที่ในความเป็นจริงแล้ว พวกเขากำลังบรรลุข้อสรุปที่ถูกต้องตามข้อมูลที่ทำให้เข้าใจผิด การวิจัยจาก

ZZxmzn said...

พวกเขาเชื่อว่าเมื่อเวลาผ่านไป ยิ่งเล่นมากเท่าไหร่ โอกาสชนะก็จะยิ่งมากขึ้นเท่านั้น” ทั้งฮอร์เบย์และซิมป์สัน อ้างถึงคุณสมบัติสล็อตแมชชีนที่เรียกว่าการทำแผนที่รีลเสมือนว่าเป็นการหลอกลวงโดยเฉพาะ เว็บตรงสล็อตpg สล็อตแมชชีนแบบกลไกแบบเก่ามีจำนวนวงล้อที่ตั้งไว้ซึ่งมีสัญลักษณ์จำนวนหนึ่ง ซึ่งแต่ละอันมีแนว

ZZxmzn said...

เป็นคาสิโนสล็อตออนไลน์ที่น่าเชื่อถือ โชคดีที่เราได้ค้นคว้าเพื่อที่คุณจะได้ไม่ต้องทำ Wild Casino มีชื่อเสียงและถูกต้องตามกฎหมายหรือไม่ ใช่ ผู้เล่นใหม่สามารถมั่นใจได้ว่า Wild Casino ปลอดภัยและถูกต้องตามกฎหมาย เว็บเกมสล็อต พวกเขาเสนอเกมสล็อตฟรีมากมายด้วย จุดเด่น สมัครง่าย: ขั้นตอนการลงชื่อสมัครใช้ Wild Casino นั้นไม่วุ่นวายอย่างที่คุณคิด หากคุณเคยลงชื่อเข้าใช้สล็อตคาสิ

ZZxmzn said...

สมัครครั้งแรก ฝ่ายสนับสนุนลูกค้า: คุณสามารถคาดหวังความช่วยเหลือลูกค้าที่มีความรู้และรองรับใน 26 ภาษาเมื่อเล่นที่ Wild Casino Wild Casino ให้บริการแชทสด อีเมล และการสนับสนุนอื่น ๆ ตลอด 24/7 แม้จะไม่มีหมายเลขโทรศัพท์ เว็บสล็อตpg บทวิจารณ์: การดูบทวิจารณ์ของ Wild Casino ไม่ใช่งานใหญ่สำหรับเราเพราะล้วนแต่เป็นไปในเชิงบวก Wild Casino มีบทวิจารณ์ระดับ Penta-star เกือบทั้งหมดบนแพลตฟอร์มออนไลน์หลายแห่ง บทวิจารณ์เชิงลบบาง

ZZxmzn said...

ดิจิตอล รางวัลแจ็คพอต: เมื่อผู้คนเล่นสล็อตแมชชีนออนไลน์ รางวัล. เราต้องการให้คุณมีโอกาสที่จะชนะรางวัลสำคัญ ด้วยเหตุนี้ เราจึงตรวจสอบเพื่อให้แน่ใจว่าแจ็คพอตทั้งหมดนั้นปลอดภัยและเป็นของจริง สล็อตเว็บตรงแท้ คุณภาพของเกม: คุณสามารถคาดหวังได้ว่าเกมสล็อตออนไลน์จะเป็นมิตรและยุติธรรมหากเว็บไซต์น่าเชื่อถือ ดังนั้นเราจึงตรวจสอบความยุติธรรมของเว็บไซต์และคุณภาพของเกมที่มีให้เพื่อให้แน่ใจว่าคุณจะไม่ทำอะไรผิด ฝ่ายบริการลูกค้า: เราไม่รวมเกมสล็อตเงินจริงออนไลน์ทั้งหมดออกจากรายการของเรา ซึ่งนำเสนอการบริการลูกค้าที่น่าสมเพช เนื่องจากคุณจะไม่เล่นในคาสิโนจริงและอาจ