我继承了大量的代码,包括一个视觉工作室项目,应该(尽我所知)构建一个.lib文件.Visual Studio说"......生成代码......创建库......创建浏览信息文件......",最后,它说构建成功了.在release/debug文件夹中,它有一堆.obj文件,但它没有.lib文件.我能错过什么?
谢谢!
我试图拦截System.out和System.err,但保持在必要时直接写入原始流的能力.
PrintStream ps = System.out;
System.setOut(new MyMagicPrintStream());
ps.println("foo");
Run Code Online (Sandbox Code Playgroud)
不幸的是,System类实现的细节意味着在我的例子中,"foo"被发送到真正的stdout的MyMagicPrintStream instread.有谁知道如何获得真实/原始OutputStreams的引用.
谢谢!
PS:否则会导致StackOverflowError < - 用于SEO.
我正在使用自定义类加载器加载类.在大多数情况下,一切正常,但有时当我加载特别复杂的项目/库时,我得到一个奇怪的错误:
Exception in thread "main" java.lang.ClassCircularityError:
org/apache/commons/codec/binary/Hex
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at java.lang.ClassLoader.defineClass(ClassLoader.java:466)
at my.custom.class.Loader.loadClass(...)
Run Code Online (Sandbox Code Playgroud)
看看Javadocs,我不希望defineClass抛出这个特殊的错误. org/apache/commons/codec/binary/Hex是我正在尝试加载的类.defineClass在它定义类之前,它几乎就像想要一个类的副本 - 这对我来说毫无意义.
想法?
我想设置JFrame的大小,以便contentPane是所需的大小.JFrame.setSize()不考虑窗口装饰,因此contentPane有点太小.窗口装饰的大小是平台和主题特定的,所以尝试手动帐户是坏消息.
JFrame.getContentPane().setSize()失败,因为它是托管的.
想法?
谢谢!
我正在使用Java3D来渲染三维场景.我想在3d图像的顶部叠加一个二维"抬头显示器".如何在3d画布上高效绘制2D内容?
谢谢!
我正在尝试定义一个自定义的ClassLoader.
public class ExampleLoader extends ClassLoader
{
public Class<?> findClass(String name) throws ClassNotFoundException
{
System.out.println("This never gets printed");
return super.findClass(name);
}
public Class<?> loadClass(String name, boolean b)
throws ClassNotFoundException
{
System.out.println("This never gets printed");
return super.loadClass(name, b);
}
}
Run Code Online (Sandbox Code Playgroud)
当然我的代码来测试它:
public class Tester
{
public static void main(String[] args)
{
Thread t = new FooThread();
t.setContextClassLoader(new ExampleLoader());
t.start();
}
}
class FooThread extends Thread
{
public void run()
{
new RandomClass();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是我的线条永远不会打印出来.显然我错过了一些东西.
我正打开一个安全的SSL套接字到我服务器上的端口12345.我现在正在使用自签名证书.我将证书安装到我的服务器密钥库和客户端信任库中; 很好,等等等等.
我正在建立这个例子:http://www.exampledepot.com/egs/javax.net.ssl/Client.html
客户端正确验证服务器是否具有签名证书.客户端似乎没有验证所提供的证书CN(公共名称)是否与我正在连接的服务器的主机名匹配.显然,如果没有要求它与请求的域匹配,则获得签名证书并不困难.
当我安装我的证书(使用keytool --import)时,我是否将其安装为根级证书?我是否需要使用第一个证书的主键签署第二个证书?为什么TrustManager不验证通用名称?
我希望这是有道理的,我不会过分思考这一切.
谢谢!
更新:似乎Java SSL可能要求手动验证证书?(http://www.java2s.com/Open-Source/Java-Document/Net/Apache-common-HttpClient/org/apache/commons/httpclient/contrib/ssl/StrictSSLProtocolSocketFactory.java.htm)这真的是真的吗?我本以为默认是安全的,任何更少的默认都需要显式覆盖.我很惊讶.有人可以证实吗?
我正在尝试为tomcat实现自定义类加载器.我的第一次尝试产生了类强制转换异常(显然,tomcat尝试将我的加载器强制转换为org.apache.catalina.loader.WebappLoader).好吧,我扩展了WebappLoader并将catalina.jar添加到我的构建路径中.
现在我准备好部署(我想).我收到这个错误:
严重:Catalina.start:LifecycleException:start :: java.lang.NoClassDefFoundError:org/apache/catalina/loader/WebappLoader
Tomcat带有catalina.jar来运行,所以我99.9%肯定它已经加载到tomcat中.我通过检查/server/lib/catalina.jar验证了这一点,它包含了apache WebappLoader.此外,正如预期的那样,手动链接另一个catalina.jar会产生一大堆问题.
我糊涂了.任何提示都会很热.
谢谢!
更新:有趣的是,tomcat6上的相同内容(扩展WebappLoader;在tomcat5.5上运行)仍会导致ClassCastException.听起来像执行演员表的类是使用与加载我的类的装载器不同的加载器加载的.我不知道我怎么能控制它,除非在某处可能有另一个丢失的tomcat配置?对tomcat6有什么想法吗?
我正在写一个服务器,它可能正在运行恶意代码.为了防止攻击者将线程抛入无限循环,我想强制执行一秒的执行时间限制.
一个InterruptedException可以无限循环内被捕获,从而允许攻击者保留线程的控制.因此Thread.interrupt()不是可接受的解决方案.
我当前的实现防止恶意线程获取任何资源(包括锁),用于Thread.stop()终止执行,并恢复线程所做的任何更改.我的主要抱怨是它使用了弃用的Thread.stop()方法; 我不喜欢使用已弃用的代码.
我想知道是否有更多行业认可的解决方案,缺少启动/杀死一个全新的JVM,这对我的目的来说会有太多的开销.