So there is this strong urge in me to label biblical characters as good or bad. David= Good, Solomon= Bad, Jezebel= Really Bad, Pharoah= Really bad too, Ruth= Good.
But really, they were all bad. God required something from each of them. He protected some of them, some of the time from the evil nature that stays within each of us since the moment of the Fall. He hardened Pharoah's heart, giving him no escape from his own nature to demonstrate his love and power for his people.
I was thinking about this as I was reading about Joab. David and Solomon's military man. He served David faithfully until the trials with Absalom and then continued to be a complicated character under Solomon's reign. He saved David's butt a few times but still you see bitterness drive him to evil. In the end David tells Solomon
“Now you yourself know what Joab son of Zeruiah did to me—what he did to the two commanders of Israel’s armies, Abner son of Ner and Amasa son of Jether. He killed them, shedding their blood in peacetime as if in battle, and with that blood he stained the belt around his waist and the sandals on his feet. Deal with him according to your wisdom, but do not let his gray head go down to the grave in peace. 1 Kings 2:5-6
Then Solomon has Joab struck down, fulfilling his father's wish, though not necessarily God's. Because men of God do things outside of God's will ALL THE TIME. I find this a very important fact to remember whenever I read anything in the books of Samuel and Kings.
The truth is, we don't know if Joab went to Heaven or not. We know Solomon cursed him but not if God honored that curse. So judging Joab is fruitless and not my job. Not Joab or anybody else.