Tag: java

通过java运行.net控制台时“句柄无效”

我正在尝试通过Java运行dot net console应用程序: process = Runtime.getRuntime().exec(commandLine); 我得到以下输出: Detecting The handle is invalid. 当通过控制台(windows)直接运行它时没有问题: Detecting 100% Done. 100% 我正在以这种forms运行更多的应用程序,但没有问题。 得到了这个堆栈跟踪: Detecting at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.Console.GetBufferInfo(Boolean throwOnNoConsole, Boolean& succeeded) at System.Console.get_CursorTop() at AutomaticImageOrientation.HelperClasses.General.WriteProgressToConsole(Int32 lastIndex, Int32 totalImages) at AutomaticImageOrientation.MainManager.DetectImage(String[] files, String outputPath, String& globalErrorMessage, Dictionary`2& foundRotations) 问题是当.net应用程序尝试写入控制台时有什么解决方案? 找到导致问题的那一行: Console.CursorLeft = 0; 你知道为什么吗?

generics方法用法

我在C#中有这个代码: private static T GetPage() where T : new() { var page = new T(); PageFactory.InitElements(Browser.Driver, page); return page; } public static AboutPage About { get { return GetPage(); } } 我试图在Java中实现这一点,因为我非常喜欢这个概念,但我对generics(尤其是c#)并不擅长。 那么,这是我的代码: private static T getPage(Class cls) throws Exception{ T page = cls.newInstance(); PageFactory.initElements(driver, page); return page; } public static LoginPage Login() { return […]

想要检索给定WebElement的Xpath

使用Selenium WebDriver,我有一个页面中所有Web元素的列表。 我想编写一个函数,它将返回传递元素的XPath字符串。 Call for Function将如下所示: – String XpathOfElement = myWebDriver.getXpath(My_Web_Element) 提示 : – 我认为我们可以使用javascript(使用JavaScriptExecuter)。 但不熟悉javascript。

JNA无法通过java在dll文件中找到指定的过程

我试图通过java访问DLL程序,但我的java方法无法找到该程序。 dll文件已成功加载,但是名为Login I的C#代码中的过程无法调用。 下面是ADHelper.dll中的过程def: public static ADHelper.LoginResult Login(string UserName, string Password) { if (!ADHelper.IsUserValid(UserName, Password)) return ADHelper.LoginResult.LOGIN_USER_DOESNT_EXIST; DirectoryEntry user = ADHelper.GetUser(UserName); if (user == null) return ADHelper.LoginResult.LOGIN_USER_DOESNT_EXIST; int userAccountControl = Convert.ToInt32(RuntimeHelpers.GetObjectValue(user.Properties[“userAccountControl”][0])); user.Close(); return !ADHelper.IsAccountActive(userAccountControl) ? ADHelper.LoginResult.LOGIN_USER_ACCOUNT_INACTIVE : ADHelper.LoginResult.LOGIN_OK; } dll文件名是ADHelper.dll。 LoginResult是枚举类型: public enum LoginResult { LOGIN_OK, LOGIN_USER_DOESNT_EXIST, LOGIN_USER_ACCOUNT_INACTIVE, } 下面是我通常调用程序的java程序: package dllTest; import com.sun.jna.*; public […]

在java中使用C#dll

我试图在c#中使用外部.dll文件编码,在我的Java应用程序中,我知道它包含的接口与我们可以使用的函数的接口,我可以将dll加载到我的java应用程序,但我如何使用接口在它里面? 我不知道JNI在这种情况下如何提供帮助。请帮忙。

Java和C#应用程序之间的套接字通信

我有02个应用程序,一个用java编写,另一个用C#编写。 我需要在它们之间交换数据(字符串),因此我使用套接字连接。 目前,C#应用程序充当服务器,Java应用程序充当客户端。 C#应用程序将持续侦听端口“7777”,Java应用程序将启动一个套接字“localhost:7777”并使用该套接字将数据发送到C#服务器。 我不关闭它们之间的连接,因为我需要经常交换数据。 在我的C#服务器应用程序有时需要将一些字符串发送到Java客户端应用程序之前,一切都很好。 我想使用另一个端口使我的java应用程序成为服务器,C#应用程序也将成为客户端。 但我觉得这不是一个好的解决方案。 P / S:是的,socket是双向的,在我当前的应用程序中,我可以将来自我的C#应用​​程序的字符串数据发送回Java应用程序,但只有当Java应用程序首先将字符串发送到C#应用程序并且现在它正在等待时来自C#应用程序的响应数据。 因此,我想问一下是否还有其他更好的解决方案? 如果我们总共只使用1个端口吗? 非常感谢你。

如何在C#客户端中使用Stream而不是byte 和Java MTOM Web服务

我有一个使用CXF生成的java webservice,并启用了MTOM。 在java方面,我使用DataHandler而不是byte []来发送一个大文件。 如果我生成一个Java客户端,它工作正常,在客户端也声明DataHandler。 问题是当我尝试创建一个C#.net客户端时。 使用Visual Studio 2010生成客户端代码,它将字段声明为byte []而不是Stream。 这是一个问题,因为在客户端,它正在读取和分配所有数据以填充byte []。 看到一些MTOM和C#的例子,他们使用Strem而不是byte []。 如何生成客户端代码以在C#中使用Stream而不是byte []? 这是使用mtom的wsdl部分: 编辑:我遇到的问题是内存分配。 当用大文件读取大量记录或者用大文件读取记录时,客户端会抛出exception(由于内存分配)。 使用byte []调用web服务,客户端将所有数据加载到内存中,甚至在将结果提供给其余代码来处理它之前。 使用Stream时,我可以访问webservice的结果,并且可以将Stream的内容写入文件,而无需加载到内存中,从而避免内存不足问题。

托管环境中使用的最大堆? (.NET / JAVA)

您在托管环境(如Java或.NET)中个人使用的最大堆是多少? 你遇到的一些性能问题是什么,你最终得到的回报越少,堆越大?

在Saucelabs中使用Selenium远程Firefox webdriver安装扩展程序

问题 尝试在Saucelabs上远程执行Selenium测试期间安装Firefox浏览器扩展。 在本地执行测试时,扩展程序在Firefox中安装并处于活动状态,但在Saucelabs上的远程执行中,扩展名不会出现在已安装的扩展名列表中。 按照此Saucelabs 支持文章中概述的步骤操作。 建立 Selenium.Support v2.48.2或v2.49.0 Selenium.WebDriver v2.48.2或v2.49.0 Windows 10或7 Firefox 43 C#测试设置 private static FirefoxProfile CreateFirefoxProfile() { FirefoxProfile profile = new FirefoxProfile(); profile.AddExtension(“Tools/modify_headers-0.7.1.1-fx.xpi”); profile.SetPreference(“general.useragent.override”, “UA-STRING”); profile.SetPreference(“extensions.modify_headers.currentVersion”, “0.7.1.1-signed”); profile.SetPreference(“modifyheaders.headers.count”, 1); profile.SetPreference(“modifyheaders.headers.action0”, “Add”); profile.SetPreference(“modifyheaders.headers.name0”, “SampleHeader”); profile.SetPreference(“modifyheaders.headers.value0”, “test1234”); profile.SetPreference(“modifyheaders.headers.enabled0”, true); profile.SetPreference(“modifyheaders.config.active”, true); profile.SetPreference(“modifyheaders.config.alwaysOn”, true); profile.SetPreference(“modifyheaders.config.start”, true); return profile; } private static IWebDriver GetRemoteDriver() { var […]

为什么OOP中静态类的最佳实践会有所不同?

我目前正在阅读有关Java最佳实践的内容,我发现根据本书,我们必须支持静态类而非非静态类 。 我记得在C#最佳实践中,我们必须根据Dennis Doomen的C#3.0,4.0和5.0编码指南来避免这种情况: AV1008 – 避免静态类 除了扩展方法容器之外,静态类通常会导致设计错误的代码。 除非你愿意使用一些非常黑客的工具,否则即使不是不可能,它们也是非常困难的。 注意如果您确实需要该静态类,请将其标记为静态,以便编译器可以阻止实例成员并实例化您的类。 这可以减轻您创建显式私有构造函数的麻烦。 我发现这两个用于C#答案和Java答案何时使用和避免静态类,但仅仅是好奇心 – C#和Java都是OOP语言,为什么它在最佳实践中是完全不同的? 更新:我不能从Java书中复制这么多页面,但底线是: 如果声明一个不需要访问封闭实例的成员类,则始终将static修饰符放在其声明中,使其成为静态成员类而非非静态成员类。 如果省略此修饰符,则每个实例将对其封闭实例具有无关的引用。 存储此引用会花费时间和空间,并且可能导致封闭实例被保留,否则它将有资格进行垃圾回收(第6项)。 如果您需要分配没有封闭实例的实例,您将无法这样做,因为非静态成员类实例需要具有封闭实例。 私有静态成员类的常见用法是表示由其封闭类表示的对象的组件。 它只是关于性能吗? 请注意,这个问题更多的是关于静态类和OOP ,而不是Java和C#之间的差异。