Alright, so I've posted about this already, and so have others, but nobody seems to care and it doesn't look like anybody's getting any help.
Generally speaking, the problem seems to occur primarily among users with Mac OS X 10.4.11. Immediately upon entering the IP of a server and clicking connect, the following message comes up:
Failed to connect to the server.
java.net.SocketException: Invalid argument
It's not a firewall issue; I know that. And besides, Minecraft is regularly able to connect for the purpose of updates whenever I open it. It's purely when connecting to another server that this becomes an issue.
Also interesting to note, and maybe useful: when I completely make up an IP address, the error message doesn't pop up. It just tried to connect for a while and eventually times out.
Does ANYBODY have any information about this?
And if you have this problem too, please post here so we can sort of collect ourselves and hopefully get an answer.
Minecraft Multiplayer doesn't work with OS X 10.4, period. Imagine my dismay after buying the game and not being able to play with my friends, who can play satisfactorily with their raggedy PCs.
It's a problem.
However, if you have a spare copy of Windows laying around, or can ...GET... one, VirtualBox actually runs pretty okay. I play a bit of SMP on it. It's not perfect, but we Tiger users have to make do, I guess. Hope this helped.
That's extremely disappointing. Especially because I was so pleased when I found Minecraft in the first place and saw that it was Mac-compatible so early on.
Well, hopefully he fixes it, otherwise I'll have to figure something out I guess. In the meantime I'll just keep improving my single-player tree-fortress.
This totally sucks. I just bought the game today and find out I basically can't play it on my Mac. The single-player is pretty much non-functional (2-4fps with everything turned to lowest quality), it never ever connects to multiplayer.
Great!
Creative mode in my browser it is, then. Now back to carving out my cave house.
If you can't play singleplayer you can't play multiplayer either. You don't get magically more fps while playing online. :wink.gif:
Though I really wonder. Which mac do you own? Because 2-4 fps is extremely low. :/
Rollback Post to RevisionRollBack
External server browser: Created by me, made for you.
Not working atm, and will not get updated in the near future, sorry.
Oh, joys, was looking for this kind of answer myself as I was having issues. Le sigh... Guess I can't help out reddit with some of their projects then.
I'm not sure if I should admit this - but I just got it working on tiger.
I bought the program after using it on my 2010 MacBook Pro (which runs it wonderfully) during the free weekend.
I tend not to carry the MBP with me (it's new, I'm paranoid), so after trying to show a friend on my (early) MacBook 1,1 (core duo 2, tiger 10.4.11, 2gb ram) and being gravely disappointed at this somewhat befuddling error (I'm not a java person) I succumbed to the old asberger's coder curiosity gene and had a poke around.
Turns out all you need to do is remove (replace?) the call to socket.setTrafficClass(24); in ii.class
I'm sure there are clever ways of fixing this, such as writing a class override - but here's what I did:
(dangerous admission follows, only select the text to view if you aren't going to sue me :smile.gif:)
1. looked at the system console, saw the traceback to setTrafficClass() 2. saw the source class (ii.class) 3. extracted the class files from ~/Library/Application Support/minecraft/bin/minecraft.jar using unzip (I don't know of a winrar equivalent in os x) 4. decompiled ii.class (jad) 5. commented out the line (line 28) 6. recompiled the class 7. added the new ii.class file to minecraft.jar using zip 8. ran minecraft, tried to join a server, got excited, began celebrating 9. got a java.lang.SecurityException: SHA1 digest error for ii.class exception 10. deleted the manifest from the .jar; zip -d minecraft.jar META-INF/MANIFEST.MF 11. ran minecraft 12. rejoiced
Again, I'm not a java person - all I've done here I've learnt by a bit of quick googling and head-scratching, but it works.
I'm well aware this could potentially be construed as disrespectful, but hopefully it's instead seen for what it is. I have no desire or intent to delve any further into the code or modify anything for fun/profit - I just wanted to be able to play this game :smile.gif:
that said - feel free to not make these changes (in fact I cannot condone following the above list), but hopefully they'll lead to Notch replacing this one line and suddenly having a lot of satisfied multiplayers that aren't ready (or able) to upgrade to Leopard or later.
I'm not sure if I should admit this - but I just got it working on tiger.
I bought the program after using it on my 2010 MacBook Pro (which runs it wonderfully) during the free weekend.
I tend not to carry the MBP with me (it's new, I'm paranoid), so after trying to show a friend on my (early) MacBook 1,1 (core duo 2, tiger 10.4.11, 2gb ram) and being gravely disappointed at this somewhat befuddling error (I'm not a java person) I succumbed to the old asberger's coder curiosity gene and had a poke around.
Turns out all you need to do is remove (replace?) the call to socket.setTrafficClass(24); in ii.class
I'm sure there are clever ways of fixing this, such as writing a class override - but here's what I did:
(dangerous admission follows, only select the text to view if you aren't going to sue me :smile.gif:)
1. looked at the system console, saw the traceback to setTrafficClass() 2. saw the source class (ii.class) 3. extracted the class files from ~/Library/Application Support/minecraft/bin/minecraft.jar using unzip (I don't know of a winrar equivalent in os x) 4. decompiled ii.class (jad) 5. commented out the line (line 28) 6. recompiled the class 7. added the new ii.class file to minecraft.jar using zip 8. ran minecraft, tried to join a server, got excited, began celebrating 9. got a java.lang.SecurityException: SHA1 digest error for ii.class exception 10. deleted the manifest from the .jar; zip -d minecraft.jar META-INF/MANIFEST.MF 11. ran minecraft 12. rejoiced
Again, I'm not a java person - all I've done here I've learnt by a bit of quick googling and head-scratching, but it works.
I'm well aware this could potentially be construed as disrespectful, but hopefully it's instead seen for what it is. I have no desire or intent to delve any further into the code or modify anything for fun/profit - I just wanted to be able to play this game :smile.gif:
that said - feel free to not make these changes (in fact I cannot condone following the above list), but hopefully they'll lead to Notch replacing this one line and suddenly having a lot of satisfied multiplayers that aren't ready (or able) to upgrade to Leopard or later.
oh and, hi! I'm new here. nice to meet you all.
I am already very grateful for the effort, but, when I try commenting out line 28, it gives me two errors, one on line 29 and one on line 30. any suggestions?
I know nothing about java, but decided to give it a try since I crash frequently in SMP. It also gives errors when recompiling the file.
I extracted minecraft.jar with 7zip into E:\temp, and then downloaded and put jad.exe into that folder. I also installed jdk.
"jad -s java ii.class" gives:
Parsing ii.class... Generating ii.java
Overlapped try statements detected. Not all exception handlers will be resolved
in the method a
Overlapped try statements detected. Not all exception handlers will be resolved
in the method b
This generated ii.java, in which I commented out line 28.
In jdk\bin I typed "javac e:\temp\ii.java" and received the following error message:
C:\Program Files\Java\jdk1.6.0_21\bin>javac e:\temp\ii.java
e:\temp\ii.java:13: cannot find symbol
symbol : class lb
location: class ii
public ii(Socket socket, String s1, lb lb1)
^
e:\temp\ii.java:37: cannot find symbol
symbol : class fn
location: class ii
public void a(fn fn1)
^
e:\temp\ii.java:199: cannot find symbol
symbol : class lb
location: class ii
private lb l;
^
e:\temp\ii.java:31: cannot find symbol
symbol : class ni
location: class ii
o = new ni(this, (new StringBuilder()).append(s1).append(" read thread")
.toString());
^
e:\temp\ii.java:32: cannot find symbol
symbol : class nk
location: class ii
n = new nk(this, (new StringBuilder()).append(s1).append(" write thread"
).toString());
^
e:\temp\ii.java:43: operator + cannot be applied to fn.a,int
s += fn1.a() + 1;
^
e:\temp\ii.java:43: inconvertible types
found : <nulltype>
required: int
s += fn1.a() + 1;
^
e:\temp\ii.java:59: cannot find symbol
symbol : class fn
location: class ii
fn fn1;
^
e:\temp\ii.java:62: cannot find symbol
symbol : class fn
location: class ii
fn1 = (fn)j.remove(0);
^
e:\temp\ii.java:63: operator + cannot be applied to fn.a,int
s -= fn1.a() + 1;
^
e:\temp\ii.java:63: operator - cannot be applied to int,<nulltype>
s -= fn1.a() + 1;
^
e:\temp\ii.java:65: cannot find symbol
symbol : variable fn
location: class ii
fn.a(fn1, g);
^
e:\temp\ii.java:70: cannot find symbol
symbol : class fn
location: class ii
fn fn2;
^
e:\temp\ii.java:73: cannot find symbol
symbol : class fn
location: class ii
fn2 = (fn)k.remove(0);
^
e:\temp\ii.java:74: operator + cannot be applied to fn.a,int
s -= fn2.a() + 1;
^
e:\temp\ii.java:74: operator - cannot be applied to int,<nulltype>
s -= fn2.a() + 1;
^
e:\temp\ii.java:76: cannot find symbol
symbol : variable fn
location: class ii
fn.a(fn2, g);
^
e:\temp\ii.java:94: cannot find symbol
symbol : class fn
location: class ii
fn fn1 = fn.b(f);
^
e:\temp\ii.java:94: cannot find symbol
symbol : variable fn
location: class ii
fn fn1 = fn.b(f);
^
e:\temp\ii.java:119: cannot find symbol
symbol : class nh
location: class ii
(new nh(this)).start();
^
e:\temp\ii.java:150: cannot find symbol
symbol : class fn
location: class ii
fn fn1;
^
e:\temp\ii.java:152: cannot find symbol
symbol : class fn
location: class ii
fn1 = (fn)i.remove(0);
^
Note: e:\temp\ii.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
22 errors
Okay, so (I also tried this using the "manual" methods), but in dj decompiler (after extracting the contents of minecraft.jar), I open ii.class, comment out line 28, save it as a .java file, go to compile it to get the class file, then it says: (file location)ii.java:29: unreported exception java.IOException; must be caught or declared to be thrown f= new DataInputStream(socket.getInputStream()); then it says the same thing again, just replace the 29 with 30 and the f with g, and Inputstream with OutputStream.
I hope that helps, I'll try doing exactly what you just said immediately.
Okay, so (I also tried this using the "manual" methods), but in dj decompiler (after extracting the contents of minecraft.jar), I open ii.class, comment out line 28, save it as a .java file, go to compile it to get the class file, then it says: (file location)ii.java:29: unreported exception java.IOException; must be caught or declared to be thrown f= new DataInputStream(socket.getInputStream()); then it says the same thing again, just replace the 29 with 30 and the f with g, and Inputstream with OutputStream.
I hope that helps, I'll try doing exactly what you just said immediately.
Hey, so I went through the steps again and (due to basically stumbling through the first time) missed another change I made, which should solve your f, g lines.
change the following:
socket.setTrafficClass(24);
f = new DataInputStream(socket.getInputStream());
g = new DataOutputStream(socket.getOutputStream());
into this:
//socket.setTrafficClass(24);
try {
f = new DataInputStream(socket.getInputStream());
g = new DataOutputStream(socket.getOutputStream());
} catch (IOException ex) {
a(ex);
}
(I should probably put a check in for the java version rather than completely removing that first line, but it works.)
it looks like Parkade may be a windows user, too. But this should just make multiplayer work under java 1.5 as this is the only glaring incompatibility I've found between the two java versions.
that said, as a windows user it's a lot easier to upgrade your java version without having to upgrade your OS or do any dodgy tricks - I'd recommend saving yourself some time and just upgrading at http://www.java.com/en/download/manual.jsp
I, for one, have already upgraded, and still face the "socketexception" issue, though mainly the "connection reset" one. it never happens on joining, but after joining, and almost immediately when I try turning up my view distance to "far." I am one of the atheros/realtek people mentioned in the countless other threads about the various "socket exceptions." I started with an atheros, and minecraft smp would kill my connection randomly, so I "upgraded" to a realtek, just the kind that ALSO experiences the issue (though it doesn't kill my connection anymore, so that's a plus). To say I'm desperate would be an understatement; I was just hoping (I'll admit, quixotically) that this fix could potentially work for me, and others in this situation. Though if you're pretty sure it wouldn't apply in this situation, I guess it's back to the drawing board/waiting for Notch to do something.
that's poor luck on the network card upgrade, I feel for you :smile.gif:
If you can provide me with a dump of the full error (with stack trace) I may be able to cobble together a workaround for your issue. However I can't replicate it locally so I can't make any promises :smile.gif:
Generally speaking, the problem seems to occur primarily among users with Mac OS X 10.4.11. Immediately upon entering the IP of a server and clicking connect, the following message comes up:
It's not a firewall issue; I know that. And besides, Minecraft is regularly able to connect for the purpose of updates whenever I open it. It's purely when connecting to another server that this becomes an issue.
Also interesting to note, and maybe useful: when I completely make up an IP address, the error message doesn't pop up. It just tried to connect for a while and eventually times out.
Does ANYBODY have any information about this?
And if you have this problem too, please post here so we can sort of collect ourselves and hopefully get an answer.
viewtopic.php?f=1013&t=23405
EDIT: Eep, just realized you posted there. I'm thinking it's an issue with compatibility. Unless someone using 10.4.11 can deny that.
It's a problem.
However, if you have a spare copy of Windows laying around, or can ...GET... one, VirtualBox actually runs pretty okay. I play a bit of SMP on it. It's not perfect, but we Tiger users have to make do, I guess. Hope this helped.
He better cuz this is the exact OS I have with the same java.net thing.
That's extremely disappointing. Especially because I was so pleased when I found Minecraft in the first place and saw that it was Mac-compatible so early on.
Well, hopefully he fixes it, otherwise I'll have to figure something out I guess. In the meantime I'll just keep improving my single-player tree-fortress.
This totally sucks. I just bought the game today and find out I basically can't play it on my Mac. The single-player is pretty much non-functional (2-4fps with everything turned to lowest quality), it never ever connects to multiplayer.
Great!
Creative mode in my browser it is, then. Now back to carving out my cave house.
Though I really wonder. Which mac do you own? Because 2-4 fps is extremely low. :/
External server browser: Created by me, made for you.Not working atm, and will not get updated in the near future, sorry.
I bought the program after using it on my 2010 MacBook Pro (which runs it wonderfully) during the free weekend.
I tend not to carry the MBP with me (it's new, I'm paranoid), so after trying to show a friend on my (early) MacBook 1,1 (core duo 2, tiger 10.4.11, 2gb ram) and being gravely disappointed at this somewhat befuddling error (I'm not a java person) I succumbed to the old asberger's coder curiosity gene and had a poke around.
Turns out all you need to do is remove (replace?) the call to socket.setTrafficClass(24); in ii.class
I'm sure there are clever ways of fixing this, such as writing a class override - but here's what I did:
(dangerous admission follows, only select the text to view if you aren't going to sue me :smile.gif:)
1. looked at the system console, saw the traceback to setTrafficClass()
2. saw the source class (ii.class)
3. extracted the class files from ~/Library/Application Support/minecraft/bin/minecraft.jar using unzip (I don't know of a winrar equivalent in os x)
4. decompiled ii.class (jad)
5. commented out the line (line 28)
6. recompiled the class
7. added the new ii.class file to minecraft.jar using zip
8. ran minecraft, tried to join a server, got excited, began celebrating
9. got a java.lang.SecurityException: SHA1 digest error for ii.class exception
10. deleted the manifest from the .jar; zip -d minecraft.jar META-INF/MANIFEST.MF
11. ran minecraft
12. rejoiced
Again, I'm not a java person - all I've done here I've learnt by a bit of quick googling and head-scratching, but it works.
I'm well aware this could potentially be construed as disrespectful, but hopefully it's instead seen for what it is. I have no desire or intent to delve any further into the code or modify anything for fun/profit - I just wanted to be able to play this game :smile.gif:
that said - feel free to not make these changes (in fact I cannot condone following the above list), but hopefully they'll lead to Notch replacing this one line and suddenly having a lot of satisfied multiplayers that aren't ready (or able) to upgrade to Leopard or later.
oh and, hi! I'm new here. nice to meet you all.
I am already very grateful for the effort, but, when I try commenting out line 28, it gives me two errors, one on line 29 and one on line 30. any suggestions?
I then decompiled ii.class using the command:
which produced ii.jad (rename it to ii.java)
then I ran javac in that folder with the command:
which outputs the ii.class
which outputs ii.jad (rename it to ii.class) <--- I was distracted when I wrote that, sorry
hope that helps for the time being.
(edit: I wrote something stupid, new text is in red, incorrect text is in light yellow for prosperity)
I extracted minecraft.jar with 7zip into E:\temp, and then downloaded and put jad.exe into that folder. I also installed jdk.
"jad -s java ii.class" gives:
This generated ii.java, in which I commented out line 28.
In jdk\bin I typed "javac e:\temp\ii.java" and received the following error message:
C:\Program Files\Java\jdk1.6.0_21\bin>javac e:\temp\ii.java e:\temp\ii.java:13: cannot find symbol symbol : class lb location: class ii public ii(Socket socket, String s1, lb lb1) ^ e:\temp\ii.java:37: cannot find symbol symbol : class fn location: class ii public void a(fn fn1) ^ e:\temp\ii.java:199: cannot find symbol symbol : class lb location: class ii private lb l; ^ e:\temp\ii.java:31: cannot find symbol symbol : class ni location: class ii o = new ni(this, (new StringBuilder()).append(s1).append(" read thread") .toString()); ^ e:\temp\ii.java:32: cannot find symbol symbol : class nk location: class ii n = new nk(this, (new StringBuilder()).append(s1).append(" write thread" ).toString()); ^ e:\temp\ii.java:43: operator + cannot be applied to fn.a,int s += fn1.a() + 1; ^ e:\temp\ii.java:43: inconvertible types found : <nulltype> required: int s += fn1.a() + 1; ^ e:\temp\ii.java:59: cannot find symbol symbol : class fn location: class ii fn fn1; ^ e:\temp\ii.java:62: cannot find symbol symbol : class fn location: class ii fn1 = (fn)j.remove(0); ^ e:\temp\ii.java:63: operator + cannot be applied to fn.a,int s -= fn1.a() + 1; ^ e:\temp\ii.java:63: operator - cannot be applied to int,<nulltype> s -= fn1.a() + 1; ^ e:\temp\ii.java:65: cannot find symbol symbol : variable fn location: class ii fn.a(fn1, g); ^ e:\temp\ii.java:70: cannot find symbol symbol : class fn location: class ii fn fn2; ^ e:\temp\ii.java:73: cannot find symbol symbol : class fn location: class ii fn2 = (fn)k.remove(0); ^ e:\temp\ii.java:74: operator + cannot be applied to fn.a,int s -= fn2.a() + 1; ^ e:\temp\ii.java:74: operator - cannot be applied to int,<nulltype> s -= fn2.a() + 1; ^ e:\temp\ii.java:76: cannot find symbol symbol : variable fn location: class ii fn.a(fn2, g); ^ e:\temp\ii.java:94: cannot find symbol symbol : class fn location: class ii fn fn1 = fn.b(f); ^ e:\temp\ii.java:94: cannot find symbol symbol : variable fn location: class ii fn fn1 = fn.b(f); ^ e:\temp\ii.java:119: cannot find symbol symbol : class nh location: class ii (new nh(this)).start(); ^ e:\temp\ii.java:150: cannot find symbol symbol : class fn location: class ii fn fn1; ^ e:\temp\ii.java:152: cannot find symbol symbol : class fn location: class ii fn1 = (fn)i.remove(0); ^ Note: e:\temp\ii.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 22 errorsAny idea what I did wrong?
I hope that helps, I'll try doing exactly what you just said immediately.
Hey, so I went through the steps again and (due to basically stumbling through the first time) missed another change I made, which should solve your f, g lines.
change the following:
socket.setTrafficClass(24); f = new DataInputStream(socket.getInputStream()); g = new DataOutputStream(socket.getOutputStream());into this:
//socket.setTrafficClass(24); try { f = new DataInputStream(socket.getInputStream()); g = new DataOutputStream(socket.getOutputStream()); } catch (IOException ex) { a(ex); }(I should probably put a check in for the java version rather than completely removing that first line, but it works.)
good luck!
it looks like Parkade may be a windows user, too. But this should just make multiplayer work under java 1.5 as this is the only glaring incompatibility I've found between the two java versions.
that said, as a windows user it's a lot easier to upgrade your java version without having to upgrade your OS or do any dodgy tricks - I'd recommend saving yourself some time and just upgrading at http://www.java.com/en/download/manual.jsp
If you can provide me with a dump of the full error (with stack trace) I may be able to cobble together a workaround for your issue. However I can't replicate it locally so I can't make any promises :smile.gif:
I'm not running windows, but http://support.microsoft.com/kb/241111 may be able to help you get the necessary information to me.