有没有办法获取正在运行的java程序的主类的路径.
结构是
D:/
|---Project
|------bin
|------src
Run Code Online (Sandbox Code Playgroud)
我希望得到这样的道路D:\Project\bin\.
我试过System.getProperty("java.class.path");但问题是,如果我跑的话
java -classpath D:\Project\bin;D:\Project\src\ Main
Output
Getting : D:\Project\bin;D:\Project\src\
Want : D:\Project\bin
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
=====编辑=====
得到了解决这里
package foo;
public class Test
{
public static void main(String[] args)
{
ClassLoader loader = Test.class.getClassLoader();
System.out.println(loader.getResource("foo/Test.class"));
}
}
Run Code Online (Sandbox Code Playgroud)
打印出来的:
file:/C:/Users/Jon/Test/foo/Test.class
Run Code Online (Sandbox Code Playgroud)
解决方案2(由 Erickson提供)
URL main = Main.class.getResource("Main.class");
if (!"file".equalsIgnoreCase(main.getProtocol()))
throw new IllegalStateException("Main class is not stored in a file.");
File path = new File(main.getPath());
Run Code Online (Sandbox Code Playgroud)
请注意,大多数类文件都组装成JAR文件,因此在每种情况下都不起作用(因此 …
我正在为Qt类创建一个natvis文件,我遇到了一个问题.
为了可视化QHash对象,我创建了以下两种类型:
<Type Name="QHashNode<*,*>">
<DisplayString Condition="next->next == 0">{{ key={key} value={value} h={h}}}</DisplayString>
<DisplayString>{{ key={key} value={value} h={h} withCollision }}</DisplayString>
<Expand>
<Item Name="NextNode">reinterpret_cast<QHashNode<$T1,$T2> *>(next)</Item>
</Expand>
</Type>
<Type Name="QHash<*,*>">
<DisplayString>{{ size={d->size} buckets={d->numBuckets} }}</DisplayString>
<Expand>
<IndexListItems>
<Size>d->numBuckets</Size>
<ValueNode Condition="reinterpret_cast<QHashNode<$T1,$T2> *>(d->buckets[$i]) != e">reinterpret_cast<QHashNode<$T1,$T2> *>(d->buckets[$i])</ValueNode>
</IndexListItems>
</Expand>
</Type>
Run Code Online (Sandbox Code Playgroud)
它几乎可以工作,但由于QHash在内存中不连续,因此存在大量无效条目.条件
reinterpret_cast<QHashNode<
$T1,$T2> *>(d->buckets[$i]) != e
Run Code Online (Sandbox Code Playgroud)
已经过滤掉那些无效的,但它们仍然显示为<Unable to display value>.
有谁知道是否有办法完全跳过这些条目?
我从来没有真正使用过autoexp.dat文件,这是旧方法,但是在查看安装了Qt-plugin的文件时,我认为该语句
#switch ($e.next != 0) #case 1 (
$e
)
Run Code Online (Sandbox Code Playgroud)
确切地说,所以我希望有可能在natvis文件中做到这一点吗?
如果有人感兴趣,我可以给你natvis文件,但我到目前为止只有QString,QByteArray,QList,QVector,QMap和(有问题的)QHash.
我有关于MBean和MXBean的以下问题:
有没有办法在Visual Studio 2010中管理/调试/编译Java项目?
在您回答之前,请阅读本主题.
我想生成一个从0到2500的束(x,y)坐标,它排除彼此在200之内的点而不递归.
现在我检查所有以前的值列表,看看是否有足够远的所有值.这是非常低效的,如果我需要生成大量的点,它需要永远.
那我该怎么做呢?
您是否有建议如何编写脚本来检测是否记录了脚本第一个参数中指定的用户?
如果您已登录,请为他提供向用户写入消息的机会.随后,由于发送的消息将提供编写另一个报告或完成脚本工作的机会.
在没有用户登录的情况下,消息""未知......
谢谢.
我正在尝试编写一个grunt任务,它将遍历一组输入文件并对每个文件运行转换.让我们假设输入文件由*.in每个输入文件给出,任务将创建一个.out文件.
从我读到的,似乎配置应该看起来像这样
grunt.initConfig({
my_task: {
src: 'C:/temp/*.in',
dest: 'C:/temp/output/*.out'
}
});
Run Code Online (Sandbox Code Playgroud)
任务注册应该是:
grunt.registerTask('my_task', 'iterate files', function() {
//iterate files.
});
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何使grunt发送给我文件列表并迭代它们.
知道怎么做吗?
如何在Windows上检查某个.exe程序是否正在运行(正在进行中)?
我正在制作更新一个.exe程序的java应用程序.因此,如果某个客户端使用该exe程序,我的应用程序会要求关闭exe程序,并在关闭后自动替换新的.exe文件.
这是同一个问题的略微详细版本.
我们无法访问子类中受保护的变量(超类),其中子类位于不同的包中.我们只能访问supeclass的继承变量.但是如果我们将修饰符更改为'protected static',那么我们也可以访问超类的变量.为什么会那样.?
这是我试图解释的代码片段.
package firstOne;
public class First {
**protected** int a=7;
}
package secondOne;
import firstOne.*;
public class Second extends First {
protected int a=10; // Here i am overriding the protected instance variable
public static void main (String [] args){
Second SecondObj = new Second();
SecondObj.testit();
}
public void testit(){
System.out.println("value of A in Second class is " + a);
First b = new First();
System.out.println("value in the First class" + b.a ); // Here compiler throws …Run Code Online (Sandbox Code Playgroud) 我jscape sftp用来传输文件
com.jscape.inet.sftp.Sftp
Sftp sftpSession = null;
// after the required step to connect
// through SshParameters
sftpSession.setDir(remotedirectory);
sftpSession.upload(localFile, remoteFile);
Run Code Online (Sandbox Code Playgroud)
现在,这段代码正在传输文件,那部分OK.但是文件权限在远程机器中被更改(它变为644).
in local machine:
-rw-rw-r-- 1 oracle dba 356 Jun 30 03:33 file1.test
-rwxrw-r-x 1 oracle dba 462 Jun 30 03:35 file2.test
in remote machine:
-rw-r--r-- 1 oracle dba 356 Jun 30 03:49 file1.test
-rw-r--r-- 1 oracle dba 462 Jun 30 03:49 file2.test
Run Code Online (Sandbox Code Playgroud)
我看到以下方法来更改远程文件的权限,
com.jscape.inet.sftp.Sftp.setFilePermissions(java.lang.String remoteFile, int permissions)
我的问题是,
com.jscape.inet.sftp.Sftp.upload方法只能这样,上传的文件不保留的权限?setFilePermissions明确使用方法?